Как отобразить расширенные данные настраиваемых полей в электронном письме о новом заказе в woocommerce - PullRequest
2 голосов
/ 05 февраля 2020

У меня есть расширенный плагин для настраиваемых полей, и я добавил в свой продукт настраиваемое поле с именем ярлыка (stock_number). Мой вопрос заключается в том, как отобразить / показать данные этого поля в электронном письме нового заказа.

1 Ответ

4 голосов
/ 06 февраля 2020

Приведенный ниже код должен помочь.

Option1:

add_action( 'woocommerce_order_item_meta_start', 'ts_order_item_meta_start', 10, 4 );
function ts_order_item_meta_start( $item_id, $item, $order, $plain_text ) {

    if( $stock_number = get_field( 'stock_number', $item->get_product_id() ) ;
        echo $stock_number;
}

Option2:

add_action( 'woocommerce_email_order_details', 'display_stock_email_order_details', 10, 4 );

function display_stock_email_order_details( $order, $sent_to_admin, $plain_text, $email ) {

    foreach( $order->get_items() as $item ) {
        if( $stock_number = get_field( "stock_number", $item->get_product_id() ) ){
            echo '<p><strong>'.__('Stock Number').': </strong>'.$stock_number.'</p>';
        }
    }
}

Option3:

Приведенный ниже код заменит название продукта на пользовательское значение ACF.

add_filter( 'woocommerce_order_item_name', 'custom_order_item_name', 10, 2 );
function custom_order_item_name( $item_name, $item ) {
    // Targeting email notifications only
    if( is_wc_endpoint_url() ) 
        return $item_name;

    // Get the WC_Product object (from order item)
    $product = $item->get_product();

    if( $stock_number = get_field('stock_number', $product->get_id()) ) {
        $item_name = '<p class="item-stck" style="margin:12px 0 0;">
        <strong>' . __( 'Stock Number', 'woocommerce' ) . ': </strong>' . $stock_number . '</p>';
    }
    return $item_name;
}

Option4:

Приведенный ниже код заменит наименование продукта вашим настраиваемым полем.

add_filter( 'woocommerce_order_item_name', 'custom_order_item_name', 10, 2 );
function custom_order_item_name( $item_name, $item ) {

    // Get the WC_Product object (from order item)
    $product = $item->get_product();

    if( $stock_number = get_field('stock_number', $product->get_id()) ) {
        $item_name = '<p class="item-stck" style="margin:12px 0 0;">
        <strong>' . __( 'Stock Number', 'woocommerce' ) . ': </strong>' . $stock_number . '</p>';
    }
    return $item_name;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...