Поле купон в форме элементор

Создание пункта настроек в меню админки

// Регистрация настроек
function custom_coupons_settings_init() {
    register_setting('custom_coupons_settings', 'custom_coupons_list');

    add_settings_section(
        'custom_coupons_section',
        'Список купонов',
        null,
        'custom-coupons'
    );

    add_settings_field(
        'custom_coupons_field',
        'Купоны (вводите по одному на строку)',
        'custom_coupons_field_callback',
        'custom-coupons',
        'custom_coupons_section'
    );
}
add_action('admin_init', 'custom_coupons_settings_init');

function custom_coupons_field_callback() {
    $coupons = get_option('custom_coupons_list', '');
    echo '<textarea name="custom_coupons_list" rows="10" cols="50" class="large-text code">' . esc_textarea($coupons) . '</textarea>';
}

Добавление валидации поля купон

function validate_coupon_code($record, $handler) {
    // Получаем данные формы
    $raw_fields = $record->get('fields');
    $coupon_code = $raw_fields['coupon_code']['value'];

    // Получаем список купонов из настроек
    $coupons = get_option('custom_coupons_list', '');
    $valid_coupons = array_map('trim', explode("\n", $coupons));

    // Проверка, является ли введенный купон допустимым
    if (!in_array($coupon_code, $valid_coupons)) {
        // Если купон недействителен, добавляем ошибку к полю
        $handler->add_error( $raw_fields['coupon_code']['id'], 'Введенный промокод недействителен.' );
    }
}

add_action('elementor_pro/forms/validation', 'validate_coupon_code', 10, 2);

ка

Содержимое
Вам может быть интересно

Скрол к блоку на странице (без перекрытия)

Маска на поле телефон

Форма Elementor

Let's work together!