Проблема, с которой я столкнулся заключается в том, что WooCommerce перестает генерировать счета-фактуры, как только подписка приостанавливается после неудачного платежа (соответствующий заказ получает статус неудачного).
Иногда наша команда не замечает этих подписок, и месяцы могут проходить без выставления счетов, в то время как клиент продолжает получать наш продукт.
Поскольку наши продукты по подписке являются физическими, а не цифровыми, нам необходимо WooCommerce будет продолжать генерировать счета и отправлять электронные письма каждый месяц, даже если подписка приостановлена.
Я пытаюсь использовать этот код, чтобы включить создание счетов, даже если подписка " на удержании".
Код: Выделить всё
// Generate invoice even if the subscription is on-hold
add_action('woocommerce_scheduled_subscription_payment', 'generate_invoice_for_on_hold_subscription', 10, 2);
function generate_invoice_for_on_hold_subscription( $amount_to_charge, $subscription ) {
// Check if the subscription is on-hold
if ($subscription->has_status('on-hold')) {
// Get the order related to the subscription
$order = wc_create_order(array(
'customer_id' => $subscription->get_customer_id()
));
// Add subscription items to the order
foreach ($subscription->get_items() as $item_id => $item) {
$product_id = $item->get_product_id();
$quantity = $item->get_quantity();
$order->add_product(wc_get_product($product_id), $quantity);
}
// Set billing information
$order->set_address($subscription->get_address('billing'), 'billing');
// Create invoice by changing the order status to pending
$order->update_status('pending');
// Send the invoice email to the customer
WC()->mailer()->get_emails()['WC_Email_Customer_Invoice']->trigger($order->get_id());
}
}
- Проверяет, находится ли статус подписки «в режиме ожидания».< /li>
Создание нового «ожидающего» заказа, клонированного из неудавшегося заказа. - Отправка уведомления о счете по электронной почте клиенту.
Как разрешить продолжать генерировать счета, даже если учетная запись заблокирована?
Подробнее здесь: https://stackoverflow.com/questions/790 ... ailed-paym