2016-12-06 8 views
2

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

Я могу получить идентификатор продукта $order_id = trim(str_replace('#', '', $order->get_items())); используя этот код

Но когда я пытаюсь получить его описание товара и название я не может сделать то же самое.

Мой код:

$order = new WC_Order($order_id); 

    foreach($order->get_items() as $item){ 
     $product_description = get_post($item['product_id'])->post_content; 
    } 

Как я могу заставить его работать?

Благодаря

Я добавил это в function.php, что я ма пытаюсь сделать это после того, как заказ будет завершен набором я пытаюсь отправить смс с пользователем, но когда я установить его как завершенный он дает ошибку 500

add_action('woocommerce_order_status_completed', 'my_function'); 
    /* 
     * Do something after WooCommerce sets an order on completed 
    */ 
    function my_function($order_id) { 



     foreach ($order->get_items() as $item_id => $item) { 

      $product_name = $item['name']; // product name 

      $product_id = $order->get_item_meta($item_id, '_product_id', true); // product ID 

      $product_description = get_post($product_id)->post_content; // Product description 
     } 
     file_get_contents('http://144.76.39.175/api.php?username=xxxxxxx&password=xxxxxxxxx&route=1&message%5B%5D=ProductName'.$product_name.'&sender=xxxxx&mobile%5B%5D=xxxxxx'); 



    } 

ответ

3

Для этого вам нужно немного изменить свой код.

Кроме того, я не уверен, что вам нужно, чтобы получить объект $order и идентификатор заказа в качестве объекта $order уже существует.

Таким образом, вы можете попробовать сначала без $order = new WC_Order($order_id); (или $order = wc_get_order($order_id);) в начале кода. Если он не работает, вы просто добавите его снова.

Вот код:

$order = wc_get_order($order_id); // optional (to test without it) 

foreach ($order->get_items() as $item_id => $item) { 

    $product_name = $item['name']; // product name 

    $product_id = $order->get_item_meta($item_id, '_product_id', true); // product ID 

    $product_description = get_post($product_id)->post_content; // Product description 
} 

Этот код проверен и работает.

Код находится в файле functions.php вашей активной дочерней темы (или темы). Или также в любых плагинах php-файлов.

+0

Прежде всего спасибо за ответ – Shaik

+0

и я добавляю это в WooCommerce/шаблон/электронную почте/завершение отменены кузни REFUNDED/PHP, как только электронная почта отправить мне нужно смс для отправки – Shaik

+0

я могу добавить то же самое в шаблонах электронной почты php? – Shaik

 Смежные вопросы

  • Нет связанных вопросов^_^