Intereting Posts
Почему WordPress использует сериализацию, а не json_encode для таблицы опций? Проблема с несколькими доменами Загрузите хранимые файлы WordPress для пользовательского входа Панель администратора WP исчезла Форма Действие отправить по https Неожиданные результаты с условностями внутри шаблона Как я могу извлечь или проанализировать данные из коротких кодов содержимого содержимого в массив? Как получить постоянную ссылку для текущей категории или тега? Работа с несколькими API-интерфейсами API карт Google URL изображения изменен в wordpress Закрыть или не закрыть php Переписать правила для настраиваемого типа сообщения jQuery не работает при использовании в меню wordpress Какой шаблон (ы) переопределить, чтобы использовать другую боковую панель для блога, отдельные сообщения, категории, блог-архив? Несколько авто-сгенерированных слайд-шоу / слайдов изображений на каждом (обычном) сообщении?

Как отобразить пользовательское поле в заказах электронной почты woocommerce?

У меня возникли проблемы с отображением пользовательских данных полей из выпадающего списка в форме электронной почты заказа в Woocommerce. Данные отображаются в заказе на странице администратора, а не по электронной почте?

add_action( 'woocommerce_after_order_notes', 'my_custom_checkout_field' ); function my_custom_checkout_field( $checkout ) { echo '<div class="clear"></div><br/>'; echo '<div id="my_custom_checkout_field"><h3 style="margin:0 0 0.3em;">Payment Options</h3>'; echo '<p style="margin:0 0 0.8em;clear:left;">Please select your preferred payment method below:</p>'; global $current_user; get_currentuserinfo(); if ( user_can( $current_user, "wholesale_buyer" ) ){ echo '<div class="pTrade" style="clear:left;">'; woocommerce_form_field( 'pTrade', array( 'type' => 'select', 'class' => false, 'label' => __('', 'woocommerce'), 'required' => false, 'options' => array( '' => __('Select', 'woocommerce' ), 'paypal' => __('PayPal invoice', 'woocommerce' ), 'bank' => __('Bank Transfer', 'woocommerce' ), 'credit' => __('Credit Account', 'woocommerce' ), 'cash' => __('Pickup & Pay', 'woocommerce' ) ) ), $checked ); echo '</div>'; } else { echo '<div class="pRetail" style="clear:left;">'; woocommerce_form_field( 'pRetail', array( 'type' => 'select', 'class' => false, 'label' => __('', 'woocommerce'), 'required' => false, 'options' => array( '' => __('Select', 'woocommerce' ), 'paypal' => __('PayPal invoice', 'woocommerce' ), 'bank' => __('Bank Transfer', 'woocommerce' ), 'cash' => __('Pickup & Pay', 'woocommerce' ) ) ), $checked ); echo '</div>'; } echo '<p style="margin:0 0 0.8em;clear:left;color:red;"><strong>Note:</strong> Selecting to pay through "PayPal invoice" adds 5% to your order total. <br/> You will recieve an email from PayPal requesting the amount below + 5%. </p>'; echo '</div>'; echo '<div class="clear"></div>'; } /** Update the order meta with field value WORKING ****************/ add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta'); function my_custom_checkout_field_update_order_meta( $order_id ) { if ($_POST['pTrade']) update_post_meta( $order_id, 'Trade payment method', esc_attr($_POST['pTrade'])); if ($_POST['pRetail']) update_post_meta( $order_id, 'Retail payment method', esc_attr($_POST['pRetail'])); } /** Add the field to order email **/ add_filter('woocommerce_email_order_meta_keys', 'my_custom_checkout_field_order_meta_keys'); function my_custom_checkout_field_order_meta_keys($keys) { echo '<h3>Payment Option :</h3>'; $keys['Trade pay by:'] = 'pTrade'; $keys['Retail pay by:'] = 'pRetail'; return $keys; } 

Я прочитал этот документ – https://gist.github.com/mikejolley/1604009 и еще пару других, но до сих пор не проявил никакой радости!

Solutions Collecting From Web of "Как отобразить пользовательское поле в заказах электронной почты woocommerce?"

Если код, который вы предоставили, является единственным кодом, который вы используете для достижения того, чего вы хотите, то это неполный код. Ниже приведена тестовая версия кода, которая хорошо работает. Надеюсь, это поможет:

 /* Add the field to the checkout */ add_action('woocommerce_after_order_notes', 'my_custom_checkout_field'); function my_custom_checkout_field( $checkout ) { echo '<div id="my_custom_checkout_field"><h3>'.__('My Field').'</h3>'; woocommerce_form_field( 'p_trade', array( 'type' => 'select', 'class' => array('p-trade orm-row-wide'), 'label' => __('Trade Details'), 'placeholder' => __('Enter a number'), 'clear' => true, 'options' => array( 'trade-1' => 'Trade One', 'trade-2' => 'Trade Two', 'trade-3' => 'Trade Three', 'trade-4' => 'Trade Four' ) ), $checkout->get_value( 'p_trade' )); woocommerce_form_field( 'p_retail', array( 'type' => 'select', 'class' => array('p-retail orm-row-wide'), 'label' => __('Retail Details'), 'placeholder' => __('Enter a number'), 'clear' => true, 'options' => array('retail-1' => 'Retail One', 'retail-2' => 'Retail Two', 'retail-3' => 'Retail Three', 'retail-4' => 'Retail Four') ), $checkout->get_value( 'p_retail' )); echo '</div>'; } /* Update the order meta with field value */ add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta'); function my_custom_checkout_field_update_order_meta( $order_id ) { if ($_POST['p_trade']) update_post_meta( $order_id, 'p_trade', esc_attr($_POST['p_trade'])); if ($_POST['p_retail']) update_post_meta( $order_id, 'p_retail', esc_attr($_POST['p_retail'])); } /* Add the fields to order email */ add_filter( 'woocommerce_email_order_meta_keys', 'my_custom_checkout_field_order_meta_keys' ); function my_custom_checkout_field_order_meta_keys( $keys ) { echo '<h3>Payment Option:</h3>'; $keys['Trade'] = 'p_trade'; $keys['Retail'] = 'p_retail'; return $keys; }