Вопросы с тегами [orders]

1

голосов
2

ответ
384

Просмотры

Условный заказ New Order WooCommerce уведомление по электронной почте о различных recippients

Хорошо, я был вопрос пришел от клиента, который не кажется невозможным, но правильно настройка условий является для меня проблемой. Вот что происходит, и то, что мне нужно. я бы на самом деле это будет функция возможно. Магазин имеет иерархию пользователей. Там будут 2x Суперадминистратор (ID: админ), 5x Admins (ID: admin2), 15x клиентов банка (ID: банки) и клиентов 2x недвижимости (ID: недвижимость). Я уже настроил пользовательские пользователь с идентификаторами. Нет товаров нет цены. Все выставлен счет по электронной почте с order_info. Все оплачивается на более поздний срок в доме. Таким образом, сайт действительно полагается на электронную почту. Если 15x клиенты банки разместить new_order, эти new_order (ей) необходимо отправить по электронной почте счет на администратор 5x. Если клиенты 2x Недвижимость разместить new_order, эти new_order (ей) необходимо отправить по электронной почте счет на администратор 5x. Если 5x Админы разместить new_order, эти new_order (ей) необходимо отправить по электронной почте счета-фактуры к Суперадминистратор 2x. Я не самый большой с PHP и что я имел предыдущий был очень неаккуратно. Любая помощь?
Jody B Roach
1

голосов
2

ответ
60

Просмотры

Получение одного заказа в моем-orders.php

Я пытаюсь добавить поисковую форму в моем-orders.php, где пользователь может найти таблицу заказа по inputing идентификатора заказа. В настоящее время я извлечения всех заказов на 1 клиента с помощью get_posts: $ customer_orders = get_posts (apply_filters ( 'woocommerce_my_account_my_orders_query', массив ( 'numberposts' => $ order_count, 'meta_key' => '_customer_user', 'meta_value' => get_current_user_id ( ), 'post_type' => wc_get_order_types ( 'просмотр заказов'), 'post_status' => 'туалет кавычки'))); Есть ли способ я могу получить только заказ по идентификатору заказа (ввод значения в строке поиска)? Я еще новичок в WooCommerce так простите пожалуйста меня, если мое объяснение сбивает с толку.
Jacinta Phua
1

голосов
1

ответ
570

Просмотры

Изменение статуса заказа для освобождающихся элементов в WooCommerce

Я настройка интернет-магазин с помощью WordPress и WooCommerce. У меня есть плагин под названием Woo несколько Order Creator. Что делает то, что всякий раз, когда порядок больше, чем 1 пункта выполнен, он делит основной порядок на несколько порядков, один заказ за купленный товар. Теперь, что я хочу сделать, это сделать его изменить статус заказа каждого заказа, если деталь в каждом заказе, содержащая мету ключа со значением «Освобождающимся». Например, если продукт А и продукт B покупаются. Продукт А в ОСВОБОЖДАЮЩЕМСЯ, и, следовательно, имеет {$ wpdb-> префикс} woocommerce_order_itemmeta.meta_key = «освобождающихся» и продукт B будет в наличии, и это не будет иметь metakey для ОСВОБОЖДАЮЩЕГОСЯ. Теперь дело в том, что плагин делит этот порядок на два порядка, один за купленного товара. То, что я хочу, чтобы это делать дальше, чтобы увидеть, если элементы containted в каждом новом порядке имеет metakey для ОСВОБОЖДАЮЩЕГОСЯ, и если она затем изменить статус заказа на «ожидание», для каждого заказа. Плагин код:
clauden
1

голосов
1

ответ
290

Просмотры

Покажите страну происхождения клиента на страницах админ редактировать порядка в WooCommerce

Я хотел бы быть в состоянии видеть, в какой стране продукт был заказан, даже если он из страны происхождения. Место, где я хотел бы показать страну происхождения: Так на картинке выше она показывает страну до тех пор, как это не та же страна, как страна магазин адрес установлен в. Есть ли способ, чтобы удалить это ограничение, не разрушая возможность автоматического обновления?
AHG
1

голосов
2

ответ
504

Просмотры

Изменение статуса по умолчанию на удержании при создании заказа вручную в WooCommerce

У меня есть два вопроса. Когда я добавить ручной порядок в WooCommerce, состояние по умолчанию Pending. Как я могу получить статус этого по умолчанию на на удержание? Можно ли полностью скрыть ожидание статуса в WooCommerce? Я не хочу использовать этот статус, потому что я получаю только заказы счета на более поздний момент.
GrafiTec
1

голосов
1

ответ
126

Просмотры

Append order and order items parameters in Order received callback URL

In Woocommerce, I'm trying to get parameters values from order received (thankyou) URL, in the code below: function override_return_url($return_url,$order){ //create empty array to store url parameters in $sku_list = array(); // retrive products in order foreach($order->get_items() as $key => $item) { $product = wc_get_product($item['product_id']); //get sku of each product and insert it in array $sku_list['product_'.$item['product_id'] . 'sku'] = $product->get_sku(); $lolo = "66"; $order_id = $order->get_user_id(); $order_data = $order->get_data(); // The Order data $order_billing_country = $order_data['billing']['country']; $order_payment_method = $order_data['payment_method']; } foreach($order->get_items() as $item) { $product_name = $item['name']; } foreach( $order->get_items() as $item ){ // get order item data (in an unprotected array) $item_data = $item->get_data(); // get order item meta data (in an unprotected array) $item_meta_data = $item->get_meta_data(); } } //build query strings out of the SKU array $url_extension = http_build_query($sku_list); //append our strings to original url $modified_url = $return_url.'&'.$url_extension.'&'.$lolo.'&'.$order_id.'&'.$order_billing_country.'&'.$order_payment_method.'&'.$product_name.'&'.$item_meta_data; return $modified_url; } I'm very near trying to set the right url parameters… This is the result : http://localhost/checkout/order-received/701/?key=wc_order_5ac08e6fef335&product_671sku=&66&1&MY&wc_dummy_gateway&helo&Array At the last part of the URL item_meta_data, I only get value "Array" not the real value. Any help is appreciated. (I think it's something to do with unprotected array or something..) ============================================ added more info Basically, I want to capture these meta data onto the URL CHECKOUT SCREENSHOT: I'm trying to make the URL looks like this : http://localhost/motio/checkout/order-received/707/?key=wc_order_5ac0d4c435662&product_671sku=&66&707&MY&wc_dummy_gateway&vbid=vbid-0a1141f2-s9wyooko&nickname=usernickname&[email protected]&domain=user-domain.com&offer_name=yearly&offer_id=5&subscription_id=9 note : i also want to strip out the http://www for the &domain= parameters vbid:vbid-0a1141f2-s9wyooko nickname:usernickname email:[email protected] domain:http://www.user-domain.com offer name:yearly offer_id:5 subscription_id:9 Var_Dump Data object(WC_Cart)#986 (11) { ["cart_contents"]=> array(0) { } ["removed_cart_contents"]=> array(0) { } ["applied_coupons"]=> array(0) { } ["tax_display_cart"]=> string(4) "excl" ["shipping_methods":protected]=> NULL ["default_totals":protected]=> array(15) { ["subtotal"]=> int(0) ["subtotal_tax"]=> int(0) ["shipping_total"]=> int(0) ["shipping_tax"]=> int(0) ["shipping_taxes"]=> array(0) { } ["discount_total"]=> int(0) ["discount_tax"]=> int(0) ["cart_contents_total"]=> int(0) ["cart_contents_tax"]=> int(0) ["cart_contents_taxes"]=> array(0) { } ["fee_total"]=> int(0) ["fee_tax"]=> int(0) ["fee_taxes"]=> array(0) { } ["total"]=> int(0) ["total_tax"]=> int(0) } ["totals":protected]=> array(0) { } ["session":protected]=> object(WC_Cart_Session)#987 (1) { ["cart":protected]=> *RECURSION* } ["fees_api":protected]=> object(WC_Cart_Fees)#988 (3) { ["fees":"WC_Cart_Fees":private]=> array(0) { } ["cart":"WC_Cart_Fees":private]=> *RECURSION* ["default_fee_props":"WC_Cart_Fees":private]=> array(6) { ["id"]=> string(0) "" ["name"]=> string(0) "" ["tax_class"]=> string(0) "" ["taxable"]=> bool(false) ["amount"]=> int(0) ["total"]=> int(0) } } ["cart_session_data"]=> array(15) { ["cart_contents_total"]=> int(0) ["total"]=> int(0) ["subtotal"]=> int(0) ["subtotal_ex_tax"]=> int(0) ["tax_total"]=> int(0) ["taxes"]=> array(0) { } ["shipping_taxes"]=> array(0) { } ["discount_cart"]=> int(0) ["discount_cart_tax"]=> int(0) ["shipping_total"]=> int(0) ["shipping_tax_total"]=> int(0) ["coupon_discount_amounts"]=> array(0) { } ["coupon_discount_tax_amounts"]=> array(0) { } ["fee_total"]=> int(0) ["fees"]=> array(0) { } } ["coupon_applied_count"]=> array(0) { } }
netelie
1

голосов
1

ответ
245

Просмотры

Автоматическая настройка продукта WooCommerce статус черновика, если заказ завершен

В WooCommerce Я хотел бы установить продукты статуса черновика, когда заказ будет завершен ... Так что я хочу, чтобы сделать продукты, чтобы продать 1 разы и передаются в проекте, когда заказ получает завершен. Любая идея?
dhaou bilel
1

голосов
1

ответ
271

Просмотры

Обновление и сохранить позицию заказа в заказе на WooCommerce 3

Я пытаюсь изменить количество, промежуточные и в общей сложности позиции в WooCommerce, но мой код, кажется, ничего, кроме конечной общего не изменится ... почему это ?? (Есть только одна позиция для любого заказа, я хочу изменить) Вот мой код, чтобы изменить пункт линии деталь; $ Ordernum = 12345; // то, что я хочу $ qnty = 30; // или что-то $ субтотальная = 10; $ Всего = 300; // для шоу $ порядка = wc_get_order ($ ordernum); Foreach ($> get_items порядок-() как $ item_id => $ пункт) {$ item-> set_quantity ($ qnty); $ Item-> set_subtotal ($ субтотальная); $ Item-> set_total ($ всего); $ Item-> сохранить (); } $ Заказ запасной> set_total ($ всего); $ Заказ запасной> Save (); EDIT: это, кажется, берет навсегда для того, чтобы изменения вступили в силу на панели администратора ...
RickMorty
1

голосов
1

ответ
313

Просмотры

Крючки для создания заказа исключительно в WooCommerce 3

Мне нужно, чтобы определить, когда новый порядок WooCommerce успешно создан и установлен в «processing'-это добавить некоторые дополнительные функциональные возможности и т.д. Это нормально сделать на веб-интерфейсе, как это довольно легко подключить в случае, если заказ создается с помощью либо из woocommerce_thankyou WooCommerce или woocommerce_order_status_processing крючков. У меня есть проблема в том, что я хочу, чтобы это работать при создании нового заказа вручную с помощью внутреннего интерфейса веб-сайта. Я использую некоторые пользовательские поля при добавлении заказа через вручную, что используется для манипулирования заказа при создании. К сожалению, хотя woocommerce_order_status_processing работает для администратора заказов, кажется, чтобы вызвать перед мета порядок сохраняется, поэтому, когда я пытаюсь получить мета-данные, она пуста. Чтобы обойти это, Я попытался предложения по WooCommerce крючком для создания заказа от администратора или на эту тему GitHub, который должен использовать WordPress крючки wp_insert_post или save_post_shop_order (save_post _ {$ post-> post_type}). Это работает, чтобы решить мою проблему мета порядка, как это кажется, чтобы вызвать после того, как мета порядок сохраняется. Однако - это вызывает каждый раз, когда есть обновление или новая должность, поэтому мне нужно найти способ обнаружения ли это новый пост или нет. Там есть параметр $ обновления на этих крюках, который призван показать, «Является ли это существующий пост обновляется или нет», но по какой-то причине он всегда кажется быть установлен так, даже если это новый пост / заказ. Подводя итог: мне нужен WordPress / WooCommerce крюк, который срабатывает после заказа / после мета создается с помощью внутреннего интерфейса и каким-то образом только работает это, когда заказ создается заново и не обновляется. Единственный способ потенциально сделать это, что я могу думать о том, как на это предложение проверки даты после даты изменения по сравнению, но я просто подумал, что должен быть лучший способ сделать это! Вот мой текущий код только в случае, если функция my_order_created ($ post_id, $ пост, $ обновление) {// Не беги, если $ post_id не существует или сообщение типа не заказ или обновление верно, если (! $ Post_id || ! get_post_type ($ post_id) = 'shop_order' || $ обновление == 1) {возвращение; } $ Заказать = wc_get_order ($ post_id); если ($ заказать && $ заказе запасного> has_status ( 'обработка')) {// Сделать что-то}} add_action ( 'wp_insert_post', 'my_order_created', 10, 3); модифицирована дату, но я просто подумал, что должен быть лучший способ сделать это! Вот мой текущий код только в случае, если функция my_order_created ($ post_id, $ пост, $ обновление) {// Не беги, если $ post_id не существует или сообщение типа не заказ или обновление верно, если (! $ Post_id || ! get_post_type ($ post_id) = 'shop_order' || $ обновление == 1) {возвращение; } $ Заказать = wc_get_order ($ post_id); если ($ заказать && $ заказе запасного> has_status ( 'обработка')) {// Сделать что-то}} add_action ( 'wp_insert_post', 'my_order_created', 10, 3); модифицирована дату, но я просто подумал, что должен быть лучший способ сделать это! Вот мой текущий код только в случае, если функция my_order_created ($ post_id, $ пост, $ обновление) {// Не беги, если $ post_id не существует или сообщение типа не заказ или обновление верно, если (! $ Post_id || ! get_post_type ($ post_id) = 'shop_order' || $ обновление == 1) {возвращение; } $ Заказать = wc_get_order ($ post_id); если ($ заказать && $ заказе запасного> has_status ( 'обработка')) {// Сделать что-то}} add_action ( 'wp_insert_post', 'my_order_created', 10, 3); $ Post_id || get_post_type ($ post_id)! = 'shop_order' || $ Обновление == 1) {возвращение; } $ Заказать = wc_get_order ($ post_id); если ($ заказать && $ заказе запасного> has_status ( 'обработка')) {// Сделать что-то}} add_action ( 'wp_insert_post', 'my_order_created', 10, 3); $ Post_id || get_post_type ($ post_id)! = 'shop_order' || $ Обновление == 1) {возвращение; } $ Заказать = wc_get_order ($ post_id); если ($ заказать && $ заказе запасного> has_status ( 'обработка')) {// Сделать что-то}} add_action ( 'wp_insert_post', 'my_order_created', 10, 3);
Stuart
1

голосов
1

ответ
40

Просмотры

Держите биллинг заказа первой и фамилию автоматически обновляются от пользовательских данных в WooCommerce

Итак, у меня есть сценарий, который использует туалет API, чтобы получить billing_last_name в другом приложении. Недавно я добавил плагин, который позволяет пользователю подключиться к веб-сайт с помощью социальных сетей. Это создает учетную запись автоматически с первым именем / фамилией из социальной сети. При размещении заказа, я хочу billing_first_name и billing_last_name поле должны быть скрыто, но в то же время, чтобы быть автоматически появившимся после заказа от first_name и last_name счета, созданного ранее (пользователя размещения заказа). Я пробовал следующий код, но я получаю ошибку 500 на всем сайте: add_action ( «woocommerce_checkout_order_processed», «custom_process_order1», 10, 1); Функция custom_process_order1 ($ order_id) {$ Текущий_пользователь = wp_get_current_user (); $ Current_user_id = get_current_user_id (); update_user_meta ($ current_user-> billing_first_name $ current_user_id, "first_name"); update_user_meta ($ current_user-> billing_last_name, $ current_user_id, "last_name"); }
George Imbrea
1

голосов
1

ответ
110

Просмотры

Отправить по электронной почте на заказ с динамическим объектом и получателем в WooCommerce

В WooCommerce, я был в состоянии создать пользовательскую мету окно с кнопкой, которая отправить по электронной почте, используя Отправить на заказ по электронной почте, когда кнопка WooCommerce фотографии нажата существующей код ответа. Он отображает следующую METABOX: Так что, когда я нажимаю кнопку посылает по электронной почте, которая работает просто отлично. Мой вопрос: Как я могу настроить этот код для отправки пользовательских электронной почты, как мне нужно отправить «Тема» только (с идентификатором заказа и общей оплаты) на адрес электронной почты, который должен быть в формате: [email protected] (так будет отправить SMS-шлюз и поставляется в виде SMS на мобильном устройстве)? Например: Адрес электронной почты: [email protected] Заголовок: Ваш заказ {order_id} было сделано. Итого: {order_total}. Спасибо
Lubomir
1

голосов
1

ответ
137

Просмотры

Удалить Cents (округлить до ближайшего доллара) на WooCommerce Заказы

В настоящее время, используя следующий код, чтобы округлять цену дисплея, однако порядок, в котором будет создаваться и все письма порядка не округлять суммы. В любом случае, чтобы круглые числа на каждом заказе, который не возвращается назад после того стоит? add_filter ( 'woocommerce_calculated_total', 'round_price_product'); Функция round_price_product ($ цена) {// Возвращает округлый возврату цену раунд ($ цены); } Спасибо
Kyle Rutten
1

голосов
1

ответ
83

Просмотры

Добавить продукт краткое описание для WooCommerce уведомлений по электронной почте

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

голосов
1

ответ
42

Просмотры

Конкретные структуры данных с элементами WooCommerce заказа

Для одного помещенного заказа, и что порядок, имеющий 3 продуктов я должен получить структуру данных, отформатированную как: [продукты] => Array ([0] => Array ([СК] => Продукт 1 ы [кол-во] => Продукт 1 шт [цена] => Продукт 1 цена [вес] => [скидка] => [line_ref] =>) [1] => Array ([ы] => Продукт 2 единицы складского [кол-во] => Продукт 2 шт) [2] => Array ([ы] => Продукт 3 единицы складского [кол-во] => Продукт 3 шт)) Вот мой код: $ заказать = новый WC_Order ($ order_id); // Получить код заказа $ order_id = $ заказ запасного> get_id (); // Получить данные из Items Еогеаспа ($> get_items заказа запасных () в $ item_key => $ item_values) {$ product_id = $ item_values-> get_product_id (); // Идентификатор продукта $ продукта = $ item_values-> get_product (); // WC_Product объект $ item_data = $ item_values-> get_data (); $ Пункт = массив (массив ( 'ы' => $ продукт-> get_sku (), 'кол-во' => $ item_data [ 'количество'], 'цена' => $ продукт-> get_price (), 'вес' = > '', 'скидка' => '', 'line_ref' => ''), массив ( 'ы' => $ продукт-> get_sku (), 'кол-во' => $ item_data [ 'количество'],) ); } Print_r ($ пункт); Как я могу добиться этого? Я получаю только данные самого первого настоящего продукта в порядке. И если я print_r ($ пункт); в пределах цикла Еогеаспа то он повторяет всю информацию в зависимости от количества продуктов в порядке. // WC_Product объект $ item_data = $ item_values-> get_data (); $ Пункт = массив (массив ( 'ы' => $ продукт-> get_sku (), 'кол-во' => $ item_data [ 'количество'], 'цена' => $ продукт-> get_price (), 'вес' = > '', 'скидка' => '', 'line_ref' => ''), массив ( 'ы' => $ продукт-> get_sku (), 'кол-во' => $ item_data [ 'количество'],) ); } Print_r ($ пункт); Как я могу добиться этого? Я получаю только данные самого первого настоящего продукта в порядке. И если я print_r ($ пункт); в пределах цикла Еогеаспа то он повторяет всю информацию в зависимости от количества продуктов в порядке. // WC_Product объект $ item_data = $ item_values-> get_data (); $ Пункт = массив (массив ( 'ы' => $ продукт-> get_sku (), 'кол-во' => $ item_data [ 'количество'], 'цена' => $ продукт-> get_price (), 'вес' = > '', 'скидка' => '', 'line_ref' => ''), массив ( 'ы' => $ продукт-> get_sku (), 'кол-во' => $ item_data [ 'количество'],) ); } Print_r ($ пункт); Как я могу добиться этого? Я получаю только данные самого первого настоящего продукта в порядке. И если я print_r ($ пункт); в пределах цикла Еогеаспа то он повторяет всю информацию в зависимости от количества продуктов в порядке.
Veer.Y
1

голосов
1

ответ
52

Просмотры

Append 0.00 € to shipping label when cost is zero in Woocommerce order notifications

У меня есть проблема в WooCommerce, когда груз 0,00 евро из определенного amount.The вопрос заключается в том, что телега страница не отображается 0.00 евро или бесплатно. Это решается путем ввода этого кода в файле PHP функций. Я видел его на этом посту. add_filter ( 'woocommerce_cart_shipping_method_full_label', 'add_free_shipping_label', 10, 2); Функция add_free_shipping_label ($ этикетка, $ метод) {если ($ ме-> стоимость == 0) {$ LABEL = 'Бесплатная доставка'; // не совсем элегантно жёстко строка} возвращение $ этикетки; } Существует также другой вариант, если вы хотите 0,00 евро появляться. Я обнаружил его в следующей статье. Функция my_custom_show_price_with_free_shipping ($ этикетка, $ метод) {$ = $ этикетка ме-> get_label (); если (WC () -> cart-> tax_display_cart == 'плюс') {$ этикетка = «.: '. wc_price ($ ме-> стоимость); если ($ ме-> get_shipping_tax ()> 0 && wc_prices_include_tax ()) {$ этикетке. = ''. WC () -> странах-> ex_tax_or_vat (). ''; .}} Еще {$ LABEL = ':'. wc_price ($ ме-> + стоимость $ ме-> get_shipping_tax ()); если ($ ме-> get_shipping_tax ()> 0 &&! wc_prices_include_tax ()) {$ этикетке. = ''. WC () -> странах-> inc_tax_or_vat (). ''; }} Возвращение $ этикетка; } Add_filter ( 'woocommerce_cart_shipping_method_full_label', 'my_custom_show_price_with_free_shipping', 10, 2); Вопрос заключается в том, что в уведомлении о том, что клиент получает по электронной почте его покупки и счета-фактуры в передающем части он ничего не поставил. Насколько я исследовал, я ничего не нашел. Я искал, но я ничего не нашел. ты можешь помочь мне с этим? Спасибо
Félix
1

голосов
1

ответ
60

Просмотры

Отключить конкретные способы оплаты в зависимости от статуса заказа WooCommerce

Я сделал два шага оплаты на сайте. Оплата происходит после подтверждения заказа менеджером. Во-первых, пользователь выбирает способ оплаты «для подтверждения» (переименована в «наложенным платежом») и оплатить только после получения счета на оплату. На странице оформления заказа, я прячу Paypal через JS. Я хотел бы PayPal, чтобы быть скрыт, когда на удержании статуса. Когда состояние «Ожидание оплаты» отключено «для подтверждения» (переименована в «наложенный платеж») и оплату через PayPal доступна.
Aleksey Averin
1

голосов
1

ответ
36

Просмотры

Change user role based on WooCommerce yearly orders count

Я пытаюсь реализовать функцию, где клиенты получают новую роль пользователя после определенного количества заказов были сделаны, но все эти заказы должны быть сделаны в том же году. Я был в состоянии назначить роли пользователя на основе энного количества заказов, но не могу показаться, чтобы выйти за пределы, где дата должна приниматься во внимание, кто-то может мне точку в правильном направлении, или указать на то, что я, возможно, отсутствует. Это то, что я пытался до сих пор. Функция change_user_role_on_order_status_completed ($ order_id) {$ заказать = новый WC_Order ($ order_id); $ User_id = $ заказ запасного> user_id; $ Order_this_year = ложь; $ Текущая_дата = дата ( 'Y'); $ total_orders = get_posts (массив ( 'numberposts' => -1, 'meta_key' => '_customer_user', 'meta_value' => $ идентификатор_пользователя, 'Post_type' => 'shop_order',)); если ($ total_orders> 1) {Еогеасп ($ ПОРЯДКА> get_items () как $ item_key => $ item_values): // Получить дату пункта, если ($ item_date = $ item_values-> get_date_completed () -> формат ( 'Y «) == $ текущая_дата) {$ order_this_year = истина; } Endforeach; если ($ order_this_year) {$ пользователя = новый WP_User ($ заказа запасного> user_id); // Установить роль редактора $ user-> Set_Role ( 'customer_club'); }}} Add_action ( 'woocommerce_order_status_completed', 'change_user_role_on_order_status_completed', 10, 1); get_items () как $ item_key => $ item_values): // Получить дату пункта, если ($ item_date = $ item_values-> get_date_completed () -> Формат ( 'Y') == $ текущая_дата) {$ order_this_year = истина; } Endforeach; если ($ order_this_year) {$ пользователя = новый WP_User ($ заказа запасного> user_id); // Установить роль редактора $ user-> Set_Role ( 'customer_club'); }}} Add_action ( 'woocommerce_order_status_completed', 'change_user_role_on_order_status_completed', 10, 1); get_items () как $ item_key => $ item_values): // Получить дату пункта, если ($ item_date = $ item_values-> get_date_completed () -> Формат ( 'Y') == $ текущая_дата) {$ order_this_year = истина; } Endforeach; если ($ order_this_year) {$ пользователя = новый WP_User ($ заказа запасного> user_id); // Установить роль редактора $ user-> Set_Role ( 'customer_club'); }}} Add_action ( 'woocommerce_order_status_completed', 'change_user_role_on_order_status_completed', 10, 1); если ($ order_this_year) {$ пользователя = новый WP_User ($ заказа запасного> user_id); // Установить роль редактора $ user-> Set_Role ( 'customer_club'); }}} Add_action ( 'woocommerce_order_status_completed', 'change_user_role_on_order_status_completed', 10, 1); если ($ order_this_year) {$ пользователя = новый WP_User ($ заказа запасного> user_id); // Установить роль редактора $ user-> Set_Role ( 'customer_club'); }}} Add_action ( 'woocommerce_order_status_completed', 'change_user_role_on_order_status_completed', 10, 1);
star_gazer
1

голосов
0

ответ
25

Просмотры

WooCommerce список заказов: Расчет Totals на основе отфильтрованных результатов

Есть ли способ, чтобы получить общую сумму всех заказов в списке заказов (в админ), на основе отфильтрованных результатов (например, общая сумма всех заказов в феврале месяце). Любые идеи, как справиться с этим?
Milan
1

голосов
1

ответ
41

Просмотры

событие OnClick для получать заказы в WooCommerce базы данных

событию OnClick мне нужно будет его появляться в этой информации code`to заказа места в базе данных. Кроме того, как отобразить идентификатор заказа в виде четырех чисел. это Javascript // Обеспечение значения из текущой корзины Суммы заказа вара =; вар merchantOrderId = ''; вар apiKey = 'm85BXXLpf_icrSvqbElR11xquEgmKZ8wfeRb2ly3-G7pIwCKDuytgplB7AQGi-5t'; renderMMoneyPaymentButton (сумма, merchantOrderId, apiKey)
Barker Antony
1

голосов
2

ответ
56

Просмотры

Добавить пользовательский заполнитель по электронной почте предмет в WooCommerce

У меня есть WooCommerce магазин, и я хотел бы добавить delivery_date после того как я принимаю компенсацию. Я создать настраиваемое поле в разделе заказа по имени delivery_date со значением даты. Теперь я хотел бы использовать это пользовательское поле в качестве заполнителя в теме уведомления по электронной почте, как: Ваш заказ теперь {order_status}. Информация для заказа приведены ниже для справки: deliverydate: {delivery_date} Я думаю, что заполнитель не работает так, мне нужно изменить что-то в PHP, но я не знаю, где.
Kim
1

голосов
2

ответ
3.6k

Просмотры

WooCommerce получить детали заказа после проверки

Мне нужно, чтобы получить следующую информацию после проверки: названия даты заказа ID заказа клиента (F / L) телефон клиента электронной почты клиента, которые будут помещены в массив сессии, а затем хранятся в отдельной базе данных. В настоящее время в файле functions.php моей темы, я иметь следующее: // получить данные завершения заказа: add_action ( «woocommerce_order_status_completed», «my_function»); Функция My_function ($ order_id) {$ заказать = новый WC_Order ($ order_id); $ _SESSION [ 'kiosk_data'] [ 'ORDER_NUMBER'] = $ Заказ -> [что я использовал бы здесь?]; $ _SESSION [ 'kiosk_data'] [ 'ORDER_DATE'] = $ Заказ -> [что я использовал бы здесь?]; $ _SESSION [ 'kiosk_data'] [ 'f_name'] = $ Заказ -> [что я использовал бы здесь?]; $ _SESSION [ 'kiosk_data'] [ 'l_name'] = $ Заказ -> [что я использовал бы здесь?]; $ _SESSION [ 'kiosk_data'] [ 'телефон'] = $ Заказ -> [что я использовал бы здесь?]; $ _SESSION [ 'kiosk_data'] [ 'электронная почта'] = $ Заказ -> [что я использовал бы здесь?]; // для тестирования: $ kioskDataFile = './testFile.txt'; $ KioskData = "kioskID:".. $ _ SESSION [ 'kiosk_data'] [ 'kioskID'] "\ п"; $ KioskData = "дата заказа:."; $ KioskData = $ заказ запасной> ORDER_DATE. $ KioskData = "\ п". $ KioskData = "порядок ID:". $ KioskData = $ заказ запасного> идентификатор. $ KioskData = "\ п". $ KioskData = "порядок ключей:". $ KioskData = $ заказ запасной> order_key. $ KioskData = "\ п". $ KioskData = "первое имя:". $ KioskData = $ заказ запасной> billing_first_name. $ KioskData = "\ п". $ KioskData = "фамилия:". $ KioskData = $ заказ запасной> billing_last_name. $ KioskData = "\ п". $ KioskData = "телефон:". $ KioskData = $ заказ запасной> billing_phone. $ KioskData = "\ п". $ KioskData = "электронная почта:". $ KioskData = $ заказ запасной> billing_email. $ KioskData = "\ п \ п \ п". file_put_contents ($ kioskDataFile, $ kioskData, FILE_APPEND); } Будучи очень новой для WP / WooCommerce Я действительно не знаю, как идти о захвате этих данных (пробовал несколько поисков Google без толка). file_put_contents ($ kioskDataFile, $ kioskData, FILE_APPEND); } Будучи очень новой для WP / WooCommerce Я действительно не знаю, как идти о захвате этих данных (пробовал несколько поисков Google без толка). file_put_contents ($ kioskDataFile, $ kioskData, FILE_APPEND); } Будучи очень новой для WP / WooCommerce Я действительно не знаю, как идти о захвате этих данных (пробовал несколько поисков Google без толка).
Tidan
1

голосов
1

ответ
1.6k

Просмотры

Удалить отмененные заказы от клиентов WooCommerce Мой аккаунт

Я использовал этот ответ и так WooCommerce версии 2.6+, этот код не работает больше: add_filter ( «woocommerce_my_account_my_orders_query», «custom_my_orders»); Функция custom_my_orders ($ арг) {если (($ ключ = array_search ( 'туалет подавленными', $ арг [ 'post_status']))! == ложный) {$ (эта переменная не установлена ​​арг [ 'post_status'] [$ ключ]) ; } Вернуть $ арг; } Как не старый шаблон больше не используется мой-orders.php. Как я могу сделать это, используя последнюю версию WooCommerce? Благодарю. Справка: Отменен порядок показывая под Мой счет - WooCommerce
sk15
1

голосов
1

ответ
102

Просмотры

Change SKU number of product for returning clients in thankyou hook

В WooCommerce, я пытаюсь изменить продукт SKU заказа, полученного возвращающегося клиента. В настоящее время я использую текущий код, но это не похоже на работу. У меня есть 2 разных продуктов. Продукт с идентификатором 5836 является нормальным продуктом, а другой представляет собой подписку. Это мой код: функция action_woocommerce_thankyou ($ order_id) {// Давайте получить детали заказа $ заказ = wc_get_order ($ order_id); // Клиент, который сделал покупку $ user_id = $ заказ запасного> get_user_id (); // Теперь получить рассчитывать заказ для клиента $ order_count = wc_get_customer_order_count ($ user_id); $ пунктов = $> get_items порядок-(); Foreach ($> get_items порядок-() как $ item_id => $ п) {$ = $ product_name пункт [ 'имя']; $ Product_id = $ пункт [ 'product_id']; $ Product_variation_id = $ пункт [» variation_id ']; если ($ order_count> 1) {// Возвращение клиента ... если ($ product_id == '5836') {update_post_meta ($ order_id [ 'product_id'], '_sku', $ ANT0001);} еще {// Возвращение клиент ... update_post_meta ($ order_id [ 'product_id'], '_sku', $ ANT0002);}} еще {// Новый клиент ...}}} add_action ( 'woocommerce_thankyou', 'action_woocommerce_thankyou', 10, 1) ;
Dimijazz
1

голосов
2

ответ
509

Просмотры

Получить отформатированный дату заказа плюс 5 дней в WooCommerce

Im извлечения даты заказа на странице заказа Received (Спасибо). Для даты поставки оценки нужно добавить 5 дней до этой даты и вывести его на этой странице. Пожалуйста, любой один предлагаем в PHP, мы можем использовать функцию StrToTime (), чтобы достичь этого? Но это не работает для меня. Мой код для извлечения заказа мне нужна дата с датой +5 дней в WooCommerce.
Vipin
1

голосов
2

ответ
628

Просмотры

Скрытие статуса заказа в Моем счете последних заказов странице списка

В WooCommerce, у меня есть сайт WooCommerce и на недавней странице заказов клиента, есть таблица с подробностями заказа на данном примере ссылка: https://example.com/my-account/view-order/ Я хотел бы, чтобы полностью скрыть статус заказа из таблицы, если это возможно. Как я могу добиться этого? Спасибо
Marko I.
1

голосов
1

ответ
746

Просмотры

WooCommerce как удалить действия заказа (WordPress)

При просмотре заказа в заднем конце есть выпадающий список с правой стороны «Заказать действия». Мне было интересно, как удалить некоторые из этих действий? Мне просто нужно «Повторная обработка заказа» - все остальное должно быть удалено. Я сделал Google-поиск, но в основном результаты показывают, как добавлять действия пользовательского порядка, а не как удалить их. Спасибо!
dahlsdata-tahira
1

голосов
1

ответ
146

Просмотры

Creating a custom table of orders in WooCommerce - taking ages to loop through orders

Я создаю раздел моего сайта WooCommerce, где мои корпоративные клиенты могут войти в систему и увидеть, какие из их сотрудников были сделаны заказы. Для того, чтобы сделать это, я планирую использовать WP_List_Table, которая будет заполняться по некоторым данным. Тем не менее, я изо всех сил, чтобы создать свой массив данных из-за размера нашей таблицы сообщений и нашего заказа базы (с. 10000 заказов), он принимает возрастов, чтобы запустить через петлю. Вот мой код, чтобы создать основной массив адресов электронной почты - но Wordpress бросает фатальную ошибку после 30 секунд. Кто-нибудь есть идея, как я могу сделать это таким образом, который будет работать лучше? Мысли очень высокая оценка. // Установить параметры для заказов $ customer_orders = get_posts (массив ( 'numberposts' => -1, 'post_type' => 'shop_order', 'post_status' => array_keys (wc_get_order_statuses ()), )); // Извлекает список идентификаторов порядка $ orderids = []; Foreach ($ customer_orders как $ customer_order) {$ orderids [] = $ customer_order-> ID; } // Создать список заказов $ заказов = []; Foreach ($ orderids как $ OrderID) {$ = wc_get_order порядка ($ OrderID); $ Order_company = $ заказ запасного> get_billing_company (); если ($ order_company = 'Corporate Client Name') {$ заказы [] = $ заказе запасного> get_billing_email (); }} Print_r ($ заказов); get_billing_email (); }} Print_r ($ заказов); get_billing_email (); }} Print_r ($ заказов);
Linz Darlington
1

голосов
1

ответ
46

Просмотры

NHibernate DetachedCriteria Заказы удалены

моя работа использует NHibernate 2.0.1.4000 для .NET. Мы пытаемся обновить до более поздней версии (3+), но не может из-за изменения в DetachedCriteria. В версии 2.0 вы можете использовать DetachedCriteria.AddOrder (заказ), а затем DetachedCriteria.Orders, чтобы получить список объектов заказа. В более поздних версиях, DetachedCriteria.Orders ушел. Есть еще один способ, чтобы получить список заказа? У нас есть код, который проверяет, если счетчик равен 0. Например: если (criteria.Orders.Count == 0) {criteria.AddOrder (Order.Asc ( "User.FirstName")); criteria.AddOrder (Order.Asc ( "User.LastName")); criteria.AddOrder (Order.Asc ( "User.Login")); } Спасибо
Tapeo
1

голосов
1

ответ
796

Просмотры

Add text to order summary based on a custom field value in WooCommerce

I have added successfully a custom field to my WooCommerce checkout page that is a selector for different stores that the customer can choose to collect their items from. At the moment it is showing this field on the checkout page and I am using jQuery to add information below the selector and updating the shipping cost accordingly. What I need to do next is to add the field + additional info about each pickup location on the customer's order email. so for instance if the customer selects location 1 the order email should show: Delivery location = Location 1 Address = 123 street Info = Pickup order between 4pm and 7pm weekdays I am just not sure how to add the fields of "Info" and "address" to array and then be able to call them out in the email. This is my code so far: add_filter( 'woocommerce_checkout_fields' , 'custom_store_pickup_field'); function custom_store_pickup_field( $fields ) { $fields['billing']['store_pickup'] = array( 'type' => 'select', 'options' => array( 'option_0'=> 'Please Select a Delivery Option', 'option_1' => 'Delivery', 'option_2' => 'Gym1', 'option_3' => 'Gym2' ), 'label' => __('Store Pick Up Location (Optional)', 'woocommerce'), 'required' => true, 'class' => array('store-pickup form-row-wide'), 'id' => 'store_pickup_val', 'clear' => true ); return $fields; } //* Process the checkout add_action('woocommerce_checkout_process', 'wps_select_checkout_field_process'); function wps_select_checkout_field_process() { global $woocommerce; // Check if set, if its not set add an error. if ($_POST['store_pickup'] == "option_0") wc_add_notice( 'Please select a Delivery option', 'error' ); } add_action( 'woocommerce_after_checkout_form', 'gym_opening_hours', 6); function gym_opening_hours() { ?> jQuery('#store_pickup_val').change(function(){ jQuery('body').trigger('update_checkout'); jQuery( ".gym-collection" ).remove(); if (this.value == 'option_1') { jQuery('#shipping_method_0_flat_rate1').prop('checked', true); } if (this.value == 'option_2') { jQuery( "Order can be collected between 4pm - 7pm on Tuesdays" ).addClass("gym-collection").insertAfter( "#store_pickup_val" ); jQuery('#shipping_method_0_local_pickup3').prop('checked', true); } if (this.value == 'option_3') { jQuery( "Order can be collected between 4pm - 7pm on Tuesdays" ).addClass("gym-collection").insertAfter( "#store_pickup_val" ); jQuery('#shipping_method_0_local_pickup3').prop('checked', true); } else { } });
timboon
1

голосов
2

ответ
1.1k

Просмотры

Как Показать SKU с названием продукта в порядке получения страницы и порядка Email

В functions.php add_action ( 'woocommerce_add_order_item_meta', 'custom_add_item_sku', 10, 3); Функция custom_add_item_sku ($ item_id, $ значения, $ cart_item_key) {$ item_sku = get_post_meta (значения $ [ 'PRODUCT_ID'], '_sku', TRUE); wc_add_order_item_meta ($ item_id, 'Артикул', $ item_sku, ложь); } Но его значение показывает SKU ниже заголовка продукта, но я хочу его, как это SKU: 123sd - Наименование
Asher
1

голосов
1

ответ
334

Просмотры

Configure email notification triggers on WooCommerce Advanced Notifications

Я использую WooCommerce Advanced Notifications для отправки сообщений электронной почты и на v1.2.10 фильтр был добавлен, так что вы можете изменить на курок, но я не могу заставить его работать. Фильтр крючок выглядит следующим образом: если (apply_filters ( 'woocommerce_advanced_notifications_multiple_statuses_trigger', правда)) {add_action ( 'woocommerce_order_status_pending_to_processing', массив ($ это, 'new_order')); add_action ( 'woocommerce_order_status_pending_to_completed', массив ($ это, 'new_order')); add_action ( 'woocommerce_order_status_pending_to_on держи', массив ($ это, 'new_order')); add_action ( 'woocommerce_order_status_failed_to_processing', массив ($ это, 'new_order')); add_action ( 'woocommerce_order_status_failed_to_completed', массив ($ это, ' новый порядок' ) ); } Еще {add_action ( 'woocommerce_order_status_completed', массив ($ это, 'new_order')); } То, что я хотел бы достичь, я хотел бы иметь возможность добавить свой собственный триггер (например, processing_to_completed) и удалить другие триггера (например, pending_to_on-удержание). Где я должен я использовал (http://docs.presscustomizr.com/article/26-wordpress-actions-filters-and-hooks-a-guide-for-non-developers) руководство, чтобы понять больше о фильтрах и я работал, что я могу изменить, какая часть, если заявление используется путем добавления этого кода в моей functions.php apply_filters ( «woocommerce_advanced_notifications_multiple_statuses_trigger», ложь); Но я не могу видеть, как добавить новые триггеры. Я не могу понять, как передать переменную обратно в фильтр. Я оценил бы точку в правильном направлении.
LauraTheExplorer
1

голосов
2

ответ
848

Просмотры

Как создать WooCommerce код купона динамически с помощью программного кода

Я хочу, чтобы генерировать WooCommerce код купона динамически. Мои требования в том, что после завершения заказа автоматически генерировать один код купона в админ стороне WooCommerce списка код купона для конкретного продукта. Так что любой знает мое выше требование решение, то пожалуйста, помогите мне. Спасибо, Ketan.
Ketan
1

голосов
2

ответ
523

Просмотры

Отправить WooCommerce Ордену электронный адрес, указанный на странице

Я использую WooCommerce и добавления продукта плагин для добавления дополнительных полей к продукту. Один из этих полей является адрес электронной почты, чтобы люди отправить подтверждение заказа на другой адрес, чем платежный адрес, указанный на странице оформления заказа. Электронные письма следует направлять на оба адреса. Любые мысли о том, может быть, как изменить файл functions.php, чтобы сделать это?
MacGyver_97
1

голосов
1

ответ
282

Просмотры

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

Я использовал завод WC поля для создания некоторых пользовательских полей, включая текстовое поле под названием «message_to_recipient.» Я хочу, чтобы передать это письмо, которое выходит. В моей functions.php, я использую это: add_action ( 'woocommerce_email_before_order_table', 'add_order_email_instructions', 10, 2); Функция add_order_email_instructions ($ порядок, $ sent_to_admin) {$ custom_message = get_post_meta ($ заказ запасного> ID, "message_to_recipient", правда); если (! $ sent_to_admin) {эхо 'Вы получили поздравительную открытку от'. $ заказа запасного> billing_first_name. ». $ Заказа запасного> billing_last_name. ''; «Сообщение:» эхо. $ Custom_message. ''; } Первое эхо, звоните в $ заказа запасного> billing_first_name и т.д. работает отлично. Но второй один не делает. Использовав WC Field Factory,
bamabacho
1

голосов
1

ответ
218

Просмотры

Исключить один конкретный платежный шлюз с автоматическим Restock в WooCommerce

Один из моих оплаты отпуска является ipay88, который только уменьшить запас после оплаты очищается. В то время, когда клиент производит оплату, заказ в разделе «отложенного платежа», который акции не уменьшается. Однако, когда клиент не делает оплату в срок, заказ будет автоматически помечается как «отменен». Как я уже интегрированы с автоматическим Restock плагин, «отложенного платежа» на «отменен» увеличит запас. Я хотел бы спросить, как предотвратить Restock для конкретного оплаты отпуска, который ipay88. если выход (определение ( 'ABSPATH!')); // Выход, если доступ непосредственно, если (! Class_exists ( 'WC_Auto_Stock_Restore')) {класс WC_Auto_Stock_Restore {функция __construct общественности () {add_action ( 'woocommerce_order_status_processing_to_cancelled', массив ($ это, ' restore_order_stock»), 10, 1); add_action ( 'woocommerce_order_status_on-hold_to_cancelled', массив ($ это, 'restore_order_stock'), 10, 1); add_action ( 'woocommerce_order_status_pending_to_cancelled', массив ($ это, 'restore_order_stock'), 10, 1); add_action ( 'woocommerce_order_status_completed_to_cancelled', массив ($ это, 'restore_order_stock'), 10, 1); add_action ( 'woocommerce_order_status_processing_to_refunded', массив ($ это, 'restore_order_stock'), 10, 1); add_action ( 'woocommerce_order_status_completed_to_refunded', массив ($ это, 'restore_order_stock'), 10, 1); add_action ( 'woocommerce_order_status_on-hold_to_refunded', массив ($ это, 'restore_order_stock'), 10, 1); add_action ( 'woocommerce_order_status_cancelled_to_completed', массив ($ это, 'remove_order_stock'), 10, 1); add_action ( 'woocommerce_order_status_cancelled_to_processing', массив ($ это, 'remove_order_stock'), 10, 1); add_action ( 'woocommerce_order_status_cancelled_to_on держи', массив ($ это, 'remove_order_stock'), 10, 1); add_action ( 'woocommerce_order_status_cancelled_to_pending', массив ($ это, 'remove_order_stock'), 10, 1); // add_action ( 'woocommerce_order_status_changed', массив ($ это, 'adjust_order_stock'), 10, 3); } // Конец __construct () // общественная функция adjust_order_stock ($ order_id, $ OLD_STATUS, $ NEW_STATUS) {// $ valid_new_statuses = массив ( 'полный'); // если ($ OLD_STATUS == отменены и $ NEW_STATUS) //} общественная функция remove_order_stock ($ order_id) {$ заказать = новый WC_Order ($ order_id); если {вернуться (get_option ( 'woocommerce_manage_stock') == 'да' && SizeOf ($ ПОРЯДКА> get_items ())> 0!); } Foreach ($> get_items порядка-() как $ п) {если ($ пункт [ 'product_id']> 0) {$ = $ _product заказ запасной> get_product_from_item ($ пункт); если ($ _product && $ _product-> существует () && $ _product-> managing_stock ()) {$ old_stock = $ _product-> запас; $ Кол = apply_filters ( 'woocommerce_order_item_quantity', $ пункт [ 'шт'], $ это, $ пункт); $ New_quantity = $ _product-> reduce_stock ($ кол-во); do_action ( 'woocommerce_auto_stock_restored', $ _product, $ пункт); $ Заказе запасного> add_order_note (Sprintf (__ ( 'Item #% фондового декрементируется от% s до% s.', 'WooCommerce'), $ пункт [ 'product_id'], $ old_stock, $ new_quantity)); $ ПОРЯДКА> send_stock_notifications ($ _product, $ new_quantity, $ пункт [ 'шт']); }}}} Публичную функцию restore_order_stock ($ order_id) {$ заказать = новый WC_Order ($ order_id); если {вернуться (get_option ( 'woocommerce_manage_stock') == 'да' && SizeOf ($ ПОРЯДКА> get_items ())> 0!); } Foreach ($ ПОРЯДКА> get_items () как $ п) {если ($ пункт [ 'product_id']> 0) {$ = $ _product заказ запасной> get_product_from_item ($ пункт); если ($ _product && $ _product-> существует () && $ _product-> managing_stock ()) {$ old_stock = $ _product-> запас; $ Кол = apply_filters ( 'woocommerce_order_item_quantity', $ пункт [ 'шт'], $ это, $ пункт); $ New_quantity = $ _product-> increase_stock ($ кол-во); do_action ( 'woocommerce_auto_stock_restored', $ _product, $ пункт); $ Заказе запасного> add_order_note (Sprintf (__ ( 'Item #% фондового увеличивается от% s до% s.', 'WooCommerce'), $ пункт [ 'product_id'], $ old_stock, $ new_quantity)); $ ПОРЯДКА> send_stock_notifications ($ _product, $ new_quantity, $ пункт [ 'шт']); }}}} // Конец restore_order_stock ()} $ GLOBALS [ 'wc_auto_stock_restore'] = новый WC_Auto_Stock_Restore (); }
Shen Leng Tan
1

голосов
1

ответ
556

Просмотры

Отображение пользовательского контента на основе метода доставки в WooCommerce уведомление по электронной почте

После обновления WooCommerce до 3.2, этот код ниже больше не работает. add_action ( 'woocommerce_email_order_details', 'my_completed_order_email_instructions', 10, 4); Функция my_completed_order_email_instructions ($ порядка, $ sent_to_admin, $ plain_text, $ электронная почта) {// Только для "Клиент Выполненный заказ" уведомление по электронной почте, если ( 'customer_completed_order' = $ email-> идентификатор!) возвращение; // Comptibility с WC 3.0+, если (method_exists ($ заказ, 'get_id')) {$ order_id = $ заказе запасного> get_id (); } Еще {$ order_id = $ заказ запасного> ID; } // $ заказе запасного> has_shipping_method ( '') $ shipping_method_arr = get_post_meta ($ order_id, '_shipping_method', ложь); // массив $ rate_id = $ shipping_method_arr [0] [0]; // скорость ID, если ( 'flat_rate: 10' == $ rate_id) {эхо ФАПЧ __ ( "Текст 1"); } Еще {эхо ФАПЧ __ ( "Текст 2"); }} Что не так или устаревшими в этом коде? Какие изменения нужно сделать, чтобы заставить его работать снова?
Ugenijus
1

голосов
1

ответ
636

Просмотры

Изменение состояния WooCommerce заказа на основе способа доставки

Идея заключается в том, что, когда заказ приходит с «экспресс-доставки» в качестве способа доставки, статус заказа обновляется в режиме удержания. Поскольку у меня есть несколько различных «экспресс-доставки» ставки Метод груза Я думал, что с помощью stristr (), чтобы увидеть, если слово «экспресс» появляется где-нибудь в отформатированный названии способа доставки. Но я, кажется, что-то я не получить ничего нет. Как я могу проверить, если метод заказа доставки является «экспресс-доставка», чтобы иметь возможность обновлять статус заказа? Вот код, который у меня есть: add_action ( 'woocommerce_thankyou', 'express_orders_4865', 10, 1); Функция express_orders_4865 ($ order_id) {глобальный $ WooCommerce; $ Заказать = новый WC_Order ($ order_id); $ SHIPPING_METHOD = $ заказ запасного> get_shipping_method (); если (stristr ($ SHIPPING_METHOD, ' экспресс ') === TRUE) {$ заказе запасного> update_status (' на удержание »); } Еще {возвращение; } } РЕДАКТИРОВАТЬ----------------------------------------------- ------------ Для тех, кто с помощью WooCommerce прейскурант отгрузочной get_method_id возвращает идентификатор скорости таблицы, так что я использовал get_method_title вместо, как показано ниже, если есть лучший способ, пожалуйста, комментарий ... add_action ( «woocommerce_thankyou» , 'express_shipping_update_order_status', 10, 1); Функция express_shipping_update_order_status ($ order_id) {если ($ order_id!) возвращение; $ Поиск = 'Экспресс'; // Игла для поиска в способ доставки ID // Получить экземпляр объекта WC_Order $ = wc_get_order порядка ($ order_id); // Получить Еогеасп данных объекта WC_Order_Item_Shipping ($ заказ запасных> get_shipping_methods () в $ shipping_item) {// Если метод "экспресс-доставки" используется, мы изменим порядок "на удержании" статус, если (StrPos ($ shipping_item-> get_method_title (), $ поиск)! == FALSE) {$ заказе запасного> update_status ( 'на удержание'); перерыв; }}}
blackhill24
1

голосов
1

ответ
793

Просмотры

Показать продукты Судоходные Классы в WooCommerce странице заказа редактирования

Я использую функцию, которая позволяет мне рассчитывать более чем один груз в корзине на основе класса доставки каждого продукта. Функция не имеет никаких проблем, это прекрасно. Но когда я проверяю запрос в области отправления WooCommerce, мне нужно, чтобы определить, в способе представления, имя класса, соответствующего каждому пункту. То есть, мне нужно различать детали для каждого класса, потому что я использую класс доставки, чтобы сообщить различные поставщикам о заказах в магазине. Но я понятия не имею, как сделать эту корректировку. Ниже функция я использую, работая с пакетами на основе созданных классов. Эта функция отвечает за расчет фрахта в корзине в зависимости от класса доставки. Как отобразить имя класса доставки на странице заказа в магазине администратора? Функция custom_split_shipping_packages_shipping_class ($ пакетов) {// Сброс всех пакетов $ пакетов = массив (); $ Regular_package_items = массив (); $ Split_package_items = массив (); $ Split_shipping_class = 'да-Vinci'; // Стоимость доставки класс пробкового Еогеасп (WC () -> cart-> get_cart () в $ item_key => $ п) {если ($ пункт [ 'данные'] -> needs_shipping ()) {если ($ split_shipping_class == $ пункт [ 'данные'] -> get_shipping_class ()) {$ split_package_items [$ item_key] = $ элемент; } иначе {$ regular_package_items [$ item_key] = $ пункт; 'Город' => WC () -> на клиента> get_shipping_city (), 'адрес' => WC () -> на клиента> get_shipping_address (), 'address_2' => WC () -> на клиента> get_shipping_address_2 () )); } Если (split_package_items $) {$ пакетов [] = массив ( 'содержание' => $ split_package_items, 'contents_cost' => array_sum (wp_list_pluck ($ split_package_items, 'line_total')), 'applied_coupons' => WC () -> cart-> get_applied_coupons (), 'пользователь' => Array ( 'ID' => get_current_user_id (),), 'назначения' => Array ( 'страна' => WC () -> на клиента> get_shipping_country (), 'состояние' => WC () -> на клиента> get_shipping_state (), 'почтовый индекс' => WC () -> на клиента> get_shipping_postcode (), 'город' => WC () - > на клиента> get_shipping_city (), 'адрес' => WC () -> на клиента> get_shipping_address (), 'address_2' => WC () -> на клиента> get_shipping_address_2 ())); } Вернуть $ пакетов; } add_filter ( 'woocommerce_cart_shipping_packages', 'custom_split_shipping_packages_shipping_class'); 'Город' => WC () -> на клиента> get_shipping_city (), 'адрес' => WC () -> на клиента> get_shipping_address (), 'address_2' => WC () -> на клиента> get_shipping_address_2 () )); } Вернуть $ пакетов; } add_filter ( 'woocommerce_cart_shipping_packages', 'custom_split_shipping_packages_shipping_class'); 'Город' => WC () -> на клиента> get_shipping_city (), 'адрес' => WC () -> на клиента> get_shipping_address (), 'address_2' => WC () -> на клиента> get_shipping_address_2 () )); } Вернуть $ пакетов; } add_filter ( 'woocommerce_cart_shipping_packages', 'custom_split_shipping_packages_shipping_class');
Ludson Aiello
1

голосов
1

ответ
3.7k

Просмотры

Получить подытог заказ в WooCommerce

У меня есть плагин, который выводит PDF моих заказов. Один из разделов отображает общий порядок. В настоящее время это показывает общее, но я хочу, чтобы отобразить промежуточные итоги (т.е. суммы заказа, прежде чем какие-либо купоны и т.д. применяется). Может кто-нибудь помочь? Это текущий код: $ order_total = is_callable (массив ($ заказ, 'get_total'))? $ Заказа запасной> get_total (): $ заказ запасного> order_total; ?> £
Zed0121
1

голосов
1

ответ
441

Просмотры

статус WooCommerce заказа виртуальных продуктов с Woo Кредитного плагиным

Я работаю в моем магазине, все продукты I'm продажи являются виртуальными, поскольку они предоставляют коды разблокировки. I'm, используя плагин под названием StockUnlock для доступа к API, достигнутый со своими поставщиками: до здесь все в порядке. В порядке StockUnlock плагина принимает меры, когда клиент приобрел свой продукт статус заказа должен быть обработкой после полученной компенсации, но это не так: Когда я получил платеж статус идет, чтобы закончить и плагин не работает. Способ оплаты I'm, используя это Woo-кредиты (Woo кредиты плагин). Как это можно было бы решить, чтобы получить статус обработки, а не завершен?
kader gomez

Просмотр дополнительных вопросов

Связанные вопросы