Как я могу сделать значение настраиваемого поля обязательным (обязательным) на странице продукта woocommerce при добавлении продукта

Я добавил настраиваемое текстовое поле на страницу добавления продукта в woocommerce. Теперь я хочу сделать это обязательным. Я попробовал, передав аргумент "required" => true. Но это не работает. Пожалуйста, смотрите код ниже

woocommerce_wp_text_input(
  array(
    'id' => 'special_price',
    'label' => __( 'Wholesaler Price *', 'woocommerce' ),
    'placeholder' => '',
    'desc_tip' => 'true',
    'required' => 'true',
    'description' => __( 'Enter wholesaler price here.', 'woocommerce' )
  )
);

но это не делает текстовое поле обязательным. Кто-нибудь может сказать, как я могу это сделать?


person Vidhi    schedule 23.05.2014    source источник


Ответы (2)


Для атрибута required HTML5 и других настраиваемых атрибутов функция woocommerce_wp_text_input() имеет параметр custom_attributes.

woocommerce_wp_text_input(
  array(
    'id' => 'special_price',
    'label' => __( 'Wholesaler Price *', 'woocommerce' ),
    'placeholder' => '',
    'desc_tip' => 'true',
    'custom_attributes' => array( 'required' => 'required' ),
    'description' => __( 'Enter wholesaler price here.', 'woocommerce' )
  )
);
person Danijel    schedule 23.05.2014
comment
как создать цену ввода в правильном формате цена woocommerce? (например: 12,57) - person huykon225; 04.06.2017

Вы можете изменить следующий код в соответствии с вашими потребностями.

// Validate when adding to cart
        add_filter( 'woocommerce_add_to_cart_validation', 'woocommerce_add_to_cart_validation_custom', 10, 3 );

/  validation

    function woocommerce_add_to_cart_validation_custom($passed, $product_id, $qty){

        global $woocommerce;

$option = ''; // your custom field's name

   if( isset($_POST[sanitize_title($option)]) && $_POST[sanitize_title($option)] == '' )
        $passed = false;

    if (!$passed)
        $woocommerce->add_error( sprintf( __('"%s" is a required field.', 'woocommerce'), $option) );

        return $passed;

    }

Чтобы получить еще больше возможностей при добавлении продукта в корзину, вы можете найти Как добавить значение настраиваемого текстового поля в массив сеанса корзины в Woocommerce мой этот ответ полезен.

person maksbd19    schedule 23.05.2014