WooCommerce настроить название продукта в мета-заказе - PullRequest
0 голосов
/ 26 октября 2018

Старая версия WooCommerce использовалась для сохранения Product Name + (Price) в качестве названия продукта в каждой мета-позиции заказа.Но теперь они убрали цену и просто сохранили название.

Я пытаюсь вернуть цену туда.До сих пор я использовал фильтры, такие как woocommerce_json_search_found_products, woocommerce_order_item_name и т. Д. ..., чтобы добавить цену к названию продукта, но это оказывается слишком большой работой и, возможно, не столь перспективным.

Мой следующий подход заключается в том, чтобы просто сохранить правильное название продукта в каждой мета-позиции заказа, чтобы оно корректно отображалось на всех электронных письмах, счетах, страницах с описанием заказа и т. Д.

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

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Я пытаюсь отредактировать ваш код в моей работе.Я хочу дать в пункте новое имя = старое имя - _aggiunte._Aggiunte - это meta_key для order_itemmeta, я хочу meta_vlaue этого meta_key.это мой код, но код возвращает «массив».

function woocommerce_new_order_item_add_price($item_id, $item, $order_id) {

 $item_type = $item->get_type();    $order= wc_get_order($order_id);
 // We only want product order type
 if ($item_type == 'line_item') {
     $product = wc_get_product($item->get_product_id());
     $add =$order->get_data('_aggiunte');
     $new_name= $product_name.$add;
     $item->set_name($new_name);
     $item->save();  
    } 
}
0 голосов
/ 30 октября 2018

Хорошо, так что я думаю, я понял это. На сегодняшний день это лучший способ сэкономить на названии продукта. Сохраняет его в поле order_item_name в таблице woocommerce_order_items, если кому-то было интересно.

add_action('woocommerce_new_order_item', 'woocommerce_new_order_item_add_price', 10, 3);

function woocommerce_new_order_item_add_price($item_id, $item, $order_id) {

    $item_type = $item->get_type();

    // We only want product order type
    if ($item_type == 'line_item') {
        $product = wc_get_product($item->get_product_id());
        $product_name = $product->get_name();
        $product_price = $product->get_price();
        $new_name = $product_name . ' ($' . $product_price . ')';
        $item->set_name($new_name);
        $item->save();  
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...