У меня есть шлюз с более поздней оплатой, для которого я установил режим ожидания заказов.Я хотел бы автоматизировать отправку этих заказов по электронной почте со ссылкой «оплатить сейчас», когда я изменю их статус на ожидающий платеж.Это позволит сэкономить время загрузки страницы, так как в настоящее время мне нужно просмотреть заказ, затем изменить статус, затем вызвать «Отправить счет клиента / детали заказа», а затем вернуться к списку заказов администратора для каждого заказа с использованием этого шлюза (у меня есть «Менеджер статуса заказов WooCommerce»«который позволяет мне изменить статус заказа на ожидающий в массовом редакторе, но это может сбить меня с толку, какие заказы были отправлены счет-фактура с« Pay Link », когда я отвлекаюсь на что-то, что происходит в RL, таким образом, если у меня это былонастроить автоматическую отправку электронной почты с «платной ссылкой» при переходе в состояние ожидания, это сократит 95% времени, которое требуется в настоящее время).Я нашел этот код и пытаюсь согнуть его по своей воле:
// New order notification only for "Pending" Order status
add_action( 'woocommerce_checkout_order_processed', 'pending_new_order_notification', 20, 1 );
function pending_new_order_notification( $order_id ) {
// Get an instance of the WC_Order object
$order = wc_get_order( $order_id );
// Only for "pending" order status
if( ! $order->has_status( 'pending' ) ) return;
// Get an instance of the WC_Email_New_Order object
$wc_email = WC()->mailer()->get_emails()['WC_Email_Customer-Invoice'];
## -- Customizing Heading, subject (and optionally add recipients) -- ##
// Change Subject
$wc_email->settings['subject'] = __('{site_title} - New customer Pending order ({order_number}) - {order_date}');
// Change Heading
$wc_email->settings['heading'] = __('New customer Pending Order');
// $wc_email->settings['recipient'] .= ',name@email.com'; // Add email recipients (coma separated)
// Send "New Email" notification (to admin)
$wc_email->trigger( $order_id );
}
Я изменил строку 11 на «WC_Email_Customer_Invoice», пытаясь заставить этот код отправить это электронное письмо с «платой сейчас».'ссылка, Оригинальный код указывал на' WC_Email_New_Order '. Я понимаю, что последние две строки, кажется, отправляют это только на электронную почту администратора, но я ничего не получал в электронной почте администратора. Я довольно новичок в php, но я также думаю, что этонацелен только на «НОВЫЙ клиентский отложенный заказ» и может не относиться к изменению статуса на ожидающий. Мне нужно, чтобы этот шлюз оплаты позже перешел в режим ожидания, поэтому woo немедленно уменьшит запас товаров, связанных с заказом, и с этим кодом:
function reduce_stock_pending($order_id) {
wc_reduce_stock_levels($order_id);
}
add_action('woocommerce_order_status_pending', 'reduce_stock_pending');
Я могу перевести заказ в состояние ожидания, в то время как обнуление автоматического пополнения запасов выполняется для заказов с отложенным платежом. Это не идеально, потому что вы можете видеть в примечаниях к заказу, что он быстро увеличивает запас и затем сразу же принимаетэто назад из-за фрагмента кода, но это функционально для моего приложения.
Оле процесс сгибает ванильную функциональность WooCommerce, что все, похоже, согласны, придерживается логики для среднего магазина Woo, эта же логика не помогает в том, как мне нужно управлять своим магазином.Заказы, проходящие через этот ограниченный к местному платежному шлюзу, будут относиться к продуктам и услугам, которые будут доставлены и установлены до того, как счет клиента оплатит счет.
Борьба продолжается, я полон решимости найти способ автоматизировать это, несмотря навсе претензии, что это только ручная функция.Любая помощь в достижении этой цели будет принята с благодарностью.Спасибо