it-swarm.com.ru

Как получить ключ подписки или идентификатор с помощью подписок Woocommerce

Мне нужно получить ключ подписки определенной подписки, чтобы перейти в пользовательскую функцию. Я ссылался на документацию, где показано, как получить ключ, но мне не удалось интегрировать это в мой код. Итак, что делает мой код: когда запускается обновление, я подключаюсь к Process_subscription_payment с помощью своей функции. Таким образом, этот код запускается только при оплате продления подписки. Код ниже.

Документация находится здесь: https://docs.woothemes.com/document/subscription/develop/functions/management-functions/

Код здесь (который находится в functions.php):

add_action( 'processed_subscription_payment', 'callupdater' );

function callupdater()
{
    //need to get the subscription key here to pass to updatedays()
    $key = .....
    updatedays(key);
}

function updatedays($subscription_key)
{
    //do some tasks with the key
}

Любая помощь очень ценится. Я очень новичок в PHP, так что извините за мое невежество.

1
nerdalert

Я разобрался с ответом, поэтому решил опубликовать его. Мой код выглядит следующим образом, и он работает:

add_action( 'processed_subscription_payment', 'updatedays', 10, 2 );

function updatedays($user_id, $subscription_key)
{  
    //do what I need to the sub key
}

Там действительно должно быть больше примеров в документации Woothemes, хотя ..

2
nerdalert

Пока вы можете получить Order Id, вы можете использовать этот код.

global $woocommerce;
$order_id=12345;//PUT YOUR ORDER ID HERE
$order = new WC_Order( $order_id );
foreach ( WC_Subscriptions_Order::get_recurring_items( $order ) as $order_item ) {
    $subscription_key = WC_Subscriptions_Manager::get_subscription_key( $order->id, WC_Subscriptions_Order::get_items_product_id( $order_item ) );
}
echo $subscription_key;
1
Diaz Adhyatma