• Как отключить поля оформления заказа woocommerce?

    Приветствую.
    Был в разъездах и мало был в сети.

    Откуда брать вот это "$gift_wrap".

    Это просто было условие у автора.
    Вы можете выводить свои поля только, для своего кода я делал проверку
    if($name_surname !== '' && $name_surname !== NULL)
          {
          echo '<li><strong>Name and Surname:</strong> ' . $name_surname . '</li>';
          };

    если пусто - ничего не выводилось в письме с Name and Surname:
    а так в слепую понять полную картину вашей задачи не могу.
  • Как отключить поля оформления заказа woocommerce?

    я вывожу так ( под себя настроите уже )
    https://rudrastyh.com/woocommerce/order-meta-in-em...

    просто убрал проверку is gift и перед выводом проверяю если поле не пустое

    if($name_surname !== '' && $name_surname !== NULL)
    			{
    			echo '<li><strong>Name and Surname:</strong> ' . $name_surname . '</li>';
    			};


    и работает как часы
  • Как отключить поля оформления заказа woocommerce?

    email: test@mail.ru
    То есть что это такое и его значение выводить ?
    Имя: Алексей
    Телефон: 9999999
    Возраст: 77

    такого вида ?
  • Как отключить поля оформления заказа woocommerce?

    Ну тут не указанно куда вы селект добавили

    add_filter( 'woocommerce_checkout_fields' , 'shipping_safe_checkout_fields' );
    
    function shipping_safe_checkout_fields( $fields ) {
      
        $fields['shipping']['shipping_daypart'] = array(
        'type'          => 'select',
          'class'         => array( 'wps-drop' ),
          'label'         => __( 'Delivery options' ),
          'options'       => array(
          	'blank'		=> __( 'Select a day part', 'wps' ),
              'morning'	=> __( 'In the morning', 'wps' ),
              'afternoon'	=> __( 'In the afternoon', 'wps' ),
              'evening' 	=> __( 'In the evening', 'wps' )
          )
         );
    
         return $fields;
    }


    и вырубать его
    unset($fields['shipping']['shipping_daypart']);
  • Как отключить поля оформления заказа woocommerce?

    zeaovede, Да. Смотря куда вы их вписали.
    И как решение думаю все таки разделенный вариант
    add_filter( 'woocommerce_checkout_fields', 'conditionally_remove_checkout_fields_1', 25, 1 );
    add_filter( 'woocommerce_checkout_fields', 'conditionally_remove_checkout_fields_2', 25, 1 );

    попробуйте. пока не пришло на ум как соединить )
  • Как передать опции в шаблон письма на woo?

    Jokerrs567, далее по вашим же этапам пройтись.
    https://www.wpstud.io/add-custom-select-field-wooc...
    тут как раз про вашу ситуацию.
  • Как передать опции в шаблон письма на woo?

    Checkbox имеет всего 1 значение, опции доступны для поля SELECT

    add_filter( 'woocommerce_checkout_fields' , 'billing_safe_checkout_fields' );
    
    function billing_safe_checkout_fields( $fields ) {
      
        $fields['billing']['billing_whatsapp'] = array(
        'type'          => 'select',   
        'required'    => false,
        'class'       => array('form-row-wide'),
        'clear'       => true,
       
        'options' => array(
          '' => 'Выберите куда сообщить о заказе',
          'whatsapp' => 'WhatsApp',
          'viber' => 'Viber',
          'telegram' => 'Telegram',
        )
         );
    
         return $fields;
    }


    Попробуйте рассмотреть такой вариант
  • Как отключить поля оформления заказа woocommerce?

    не идельно но попробовать стоит

    add_filter( 'woocommerce_checkout_fields', 'conditionally_remove_checkout_fields', 25, 1 );
    function conditionally_remove_checkout_fields( $fields ) {
    
        
        $set_one= array( 1, 2, 3); //перечень ID товаров для первого сета 
        $set_two= array( 4, 5, 6); //перечень ID товаров для второго сета 
        $set_three= array( 7, 8, 9); //перечень ID товаров для третьего сета 
        $check_s1= false;
        $check_s2= false;
        $check_s3= false;
    
         // Проверяем первый сет
        foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item )
            if( in_array( $cart_item['data']->get_id(), $set_one) ){
                $check_s1= true; 
                break; 
        }
    
        if ( $check_s1) {
    
            unset($fields['shipping']['shipping_first_name']);
          }
        return $fields;
    
    
    
     // Проверяем второй сет
        foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item )
            if( in_array( $cart_item['data']->get_id(), $set_two) ){
                $check_s2= true; 
                break; 
        }
    
        if ( $check_s2) {
    
            unset($fields['shipping']['shipping_first_name']);
          }
        return $fields;
      
      
       // Проверяем трейтий сет
        foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item )
            if( in_array( $cart_item['data']->get_id(), $set_three) ){
                $check_s3= true; 
                break; 
        }
    
        if ( $check_s3) {
    
            unset($fields['shipping']['shipping_first_name']);
          }
        return $fields;
    
    }
  • Как отключить поля оформления заказа woocommerce?

    <?php

    Не уверен, но можно попробовать так

    add_filter( 'woocommerce_checkout_fields', 'conditionally_remove_checkout_fields', 25, 1 );
    function conditionally_remove_checkout_fields( $fields ) {
    
        
        $set_one= array( 1, 2, 3); //перечень ID товаров для первого сета 
        $set_two= array( 4, 5, 6); //перечень ID товаров для второго сета 
        $set_three= array( 7, 8, 9); //перечень ID товаров для третьего сета 
        $is_in_cart = false;
    
         // Проверяем первый сет
        foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item )
            if( in_array( $cart_item['data']->get_id(), $set_one) ){
                $is_in_cart = true; 
                break; 
        }
    
        if ( $is_in_cart ) {
    
            unset($fields['shipping']['shipping_first_name']);
          }
        return $fields;
    
    
    
     // Проверяем второй сет
        foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item )
            if( in_array( $cart_item['data']->get_id(), $set_two) ){
                $is_in_cart = true; 
                break; 
        }
    
        if ( $is_in_cart ) {
    
            unset($fields['shipping']['shipping_first_name']);
          }
        return $fields;
    	
    	
    	 // Проверяем трейтий сет
        foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item )
            if( in_array( $cart_item['data']->get_id(), $set_three) ){
                $is_in_cart = true; 
                break; 
        }
    
        if ( $is_in_cart ) {
    
            unset($fields['shipping']['shipping_first_name']);
          }
        return $fields;
    
    }


    Поля уже сами укажите какие и куда выводить
  • Как отключить поля оформления заказа woocommerce?

    У вас товары делятся на 2 типа?
    То есть на Х товары - показать поле 1
    на У товары - показать поле 2
    товаров которым ничего не показывать либо всё показывать нету ?
  • Как отключить поля оформления заказа woocommerce?

    Попробуйте так:
    add_filter( 'woocommerce_checkout_fields', 'conditionally_remove_checkout_fields', 25, 1 );
    function conditionally_remove_checkout_fields( $fields ) {
    
        // Определяем категорию для которой отключем поля
        $product_ids = array( 37, 53, 70 ); //перечень ID товаров для которых отключаем поля
    
        $is_in_cart = false;
    
         // Проверяем все товары
        foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item )
            if( in_array( $cart_item['data']->get_id(), $product_ids ) ){
                $is_in_cart = true; 
                break; 
        }
    
        //  Если нашли, тогда выполняем....
        if ( $is_in_cart ) {
    
            // hide the billing fields
            unset($fields['shipping']['shipping_first_name']);
            unset($fields['shipping']['shipping_last_name']);
            unset($fields['shipping']['shipping_company']);
            unset($fields['shipping']['shipping_address_1']);
            unset($fields['shipping']['shipping_address_2']);
            unset($fields['shipping']['shipping_city']);
            unset($fields['shipping']['shipping_postcode']);
            unset($fields['shipping']['shipping_country']);
            unset($fields['shipping']['shipping_state']);
            unset($fields['shipping']['shipping_phone']);
    
        }
        return $fields;
    }
  • Как с помощью jQuery проверить содержимое ячейки таблицы и выполнить условие?

    GMD
    @GMD Автор вопроса
    Спасибо!
    В финале выглядит так (вставлять в файл function.php)
    function wpb_hook_javascript() {
        ?>
            <script>
             jQuery(function($) {
        if ($('td.product-name:contains("Аэропорт")').length > 0) {
            $('input#ticket_number').hide();
            $('input#address').show();
        }
    });
            </script>
        <?php
    }
    add_action('wp_head', 'wpb_hook_javascript');
  • Как сделать фильтр по аттрибутам в woocommerce?

    Отлично все ясно как реализовать, но есть пару вопросов, если можете помочь.
    "taxonomy" => "pa_razmer",
    "field" => "id",
    - мы получаем id каждого аттрибута Размер, если я правильно понял. А как можно получить slug? "field" => "slug" не работает, а хотелось в url передавать slug.

    Можно ли как-то реализовать функцию, чтоб при выборе скажем Диаметра, в списке Размер были только товары с указанным диаметром?

    Спасибо.