Отображать настраиваемое поле только для уведомлений по электронной почте администратора WooCommerce - PullRequest
3 голосов
/ 05 августа 2020

Я установил редактор Checkout Field Editor на свой сайт WordPress. Я создал настраиваемое поле. Однако, используя следующий код, поле pcustomer появляется как в электронном письме с «новым заказом», которое приходит мне и покупателю. Вместо этого я хочу, чтобы это досталось исключительно мне. Я попытался отредактировать код, но он все равно не работает.

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['meta_key'] = array(
        'label' => __( 'Label' ),
        'value' => get_post_meta( $order->id, 'meta_key', true ),
    );
    return $fields;
}

1 Ответ

3 голосов
/ 05 августа 2020

Чтобы это отображалось только в уведомлениях по электронной почте администратора, требуется небольшое изменение, используя аргумент переменной $sent_to_admin функции, как показано ниже:

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 ) {
    if ( $sent_to_admin ) {
        $fields['meta_key'] = array(
            'label' => __( 'Label' ),
            'value' => $order->get_meta( 'meta_key' ),
        );
    }
    return $fields;
}

На этот раз это настраиваемое поле не будет отображаться в уведомлениях клиентов по электронной почте .

Примечание :

  • $order->id неверно, так как WooCommerce 3. используйте вместо $order->get_id().
  • Функцию WordPress get_post_meta() можно заменить методом WooCommerce WC_Data get_meta().
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...