Я пытаюсь получить дескриптор продукта и имя продукта, когда электронная почта отправляется в шаблонах электронной почты 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, что я пытаюсь сделать, после завершения заказа. Я пытаюсь отправить sms пользователю, но когда я установил его как завершен, он дает ошибку 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'); }
Для этого вам нужно немного изменить свой код.
Также я не уверен, что вам нужно получить объект $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 }
Этот код проверен и работает.
Код идет в файле function.php вашей активной дочерней темы (или темы). Или также в любых плагинах php-файлов.