WooCommerce Подписки - Акция по первоначальному взносу - PullRequest
0 голосов
/ 12 июня 2018

Я использую плагин WooCommerce для подписок, в частности функцию woocommerce_subscription_payment_complete.

Я использую его так:

add_action('woocommerce_subscription_payment_complete','subscription_created');
function subscription_created($subscription) {
    echo 'Run when subscription payment is complete';
}

Это работает, но также срабатывает, когдапродление платежа завершено.Кто-нибудь знает способ определить, был ли платеж за первоначальную подписку, а не за продление?

1 Ответ

0 голосов
/ 12 июня 2018

Вы можете использовать woocommerce_checkout_subscription_created, однако проблема здесь в том, что он сработает до обработки платежа - и я предполагаю, что вам нужно запустить его даже после того, как платеж был успешным.

Один из способовподход заключается в том, чтобы установить мета в посте подписки, который обозначает, была ли запущена ваша пользовательская функция, и проверять эту мету с помощью оператора if, например:

add_action('woocommerce_subscription_payment_complete','subscription_created');
function subscription_created($subscription) {
    //check if meta exists/is not true
    if (!get_post_meta($subscription->id, 'has_my_function_run', true)) {
        //update meta to bool(true)
        update_post_meta($subscription->id, 'has_my_function_run', true);
        //run your function
        echo 'Run when subscription payment is complete';
    }  
}

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

...