У меня проблемы с передачей пользовательских переменных поля в квитанцию по электронной почте.Я просмотрел StackOverflow, но, к сожалению, ни один из ответов / решений в моем случае не помог.
Поля, которые я создал, действительно правильно отображаются на панели администратора и на странице после проверки, он просто выиграл 't показать переменные в любом письме.
Здесь я создаю свое настраиваемое поле в functions.php:
function my_custom_checkout_field( $checkout ) {
echo '<div id="my_custom_checkout_field"><h2>' . __('Bezorg moment') . '</h2>';
woocommerce_form_field( 'delivery_date', array(
'type' => 'select',
'options' => array(
'17:30-18:00' => __('17:30 - 18:00', 'woocommerce' ),
'18:00-18:30' => __('18:00 - 18:30', 'woocommerce' )),
'class' => array('my-field-class form-row-wide'),
'label' => __('Bezorgtijd'),
'placeholder' => __('Zo snel mogelijk'),
), $checkout->get_value( 'delivery_date' ));
echo '</div>'; }
add_action( 'woocommerce_after_order_notes', 'my_custom_checkout_field' );
Здесь я обновляю мета сообщения:
function my_custom_checkout_field_update_order_meta( $order_id ) {
if ( ! empty( $_POST['delivery_date'] ) ) {
update_post_meta( $order_id, 'Bezorg moment', sanitize_text_field( $_POST['delivery_date'] ) );
} }
add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta' );
Вот где я передаю значение на панель управления заказами администратора:
function my_custom_checkout_field_display_admin_order_meta($order){
echo '<p><strong>'.__('Bezorg moment').':</strong> ' . get_post_meta( $order->id, 'Bezorg moment', true ) . '</p>'; }
add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );
И здесь я пытаюсь передать эти значения в уведомление о новом заказе:
function custom_woocommerce_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
echo '<p><strong>'.__('Bezorg moment').':</strong> ' . get_post_meta( $order->id, 'Bezorg moment', true ) . '</p>'; }
add_action( 'woocommerce_email_after_order_table', 'custom_woocommerce_email_order_meta_fields', 10, 3 );
ОднакоНезависимо от того, что я пытаюсь, ярлык будет отображаться в электронном письме, но переменные всегда передают пустое значение.Я не могу понять это, потому что точно такой же эхо правильно отображает значения на входе и на панели управления.Что я делаю не так или чем отличается электронная почта?
Заранее большое спасибо.
WordPress: 5.1 WooCommerce: 3.5.5