Добавьте пользовательское поле в шаблон электронной почты заказа woocommerce

#wordpress #woocommerce #hook-woocommerce #woocommerce-theming #woocommerce-email

Вопрос:

В моем functions.php это добавляет пользовательское поле (_shirt_number) для оформления заказа в зависимости от категории

 function bbloomer_product_add_on() {
    $orderby = 'name';
    $order = 'asc';
    $hide_empty = false ;
    $cat_args = array(
        'orderby'    => $orderby,
        'order'      => $order,
        'hide_empty' => $hide_empty,
    );
    $product_categories = get_the_terms( get_the_ID(), 'product_cat', $cat_args );
    foreach($product_categories AS $cat) {
      if($cat->name == 'Goalkeeper Shirts' OR $cat->name == '16 Shirts' OR $cat->name == 'Outfield Shirts') {
        $value = isset($_POST['_shirt_number'][0] );
        echo '<table class="variations" cellspacing="0" id="shirtTable"> <tbody id="shirtDOM"><tr> <td class="label"><label for="shirtnumber">Shirt Number</label></td><td class="value"> <input required type="text" id="shirtnumber" class="" name="_shirt_number[]"> </td></tr></tbody> </table>';
        wp_enqueue_script( 'script', get_template_directory_uri() . '/quirkypixel.js', array ( 'jquery' ), 1.1, true);
      }
    }
}
 

Другая функция сохраняет этот ввод в мета-элемент заказа

 function bbloomer_product_add_on_order_item_meta( $item_id, $values ) {
    if ( ! empty( $values['custom_numbers'] ) ) {
        foreach(unserialize($values['custom_numbers']) AS $item) {
          wc_add_order_item_meta( $item_id, '_shirt_numbers', $item, true );
        }
    }
}
 

Однако я не могу добавить это в таблицу заказов в шаблонах электронной почты. Я попробовал следующее:

 function bbloomer_product_add_on_display_emails( $fields ) {
    $fields['custom_numbers'] = 'Shirt Number(s)';
    return $fields;
}
and from the woocommerce docs:

add_filter( 'woocommerce_email_order_meta_fields', 'custom_woocommerce_email_order_meta_fields', 10, 3 );

function custom_woocommerce_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
    $fields['custom_numbers'] = array(
        'label' => __( 'Shirt Number(s)' ),
        'value' => get_post_meta( $order->id, 'custom_numbers', true ),
    );
    return $fields;
}
 

и попытался заменить «custom_numbers «на» _shirt_number», чтобы посмотреть, сработало ли это…но все равно ничего не добавлено в таблицу в электронном письме.

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

введите описание изображения здесь

Any thoughts? If I haven’t provided enough info or anything else just let me know.