web-dev-qa-db-fra.com

Comment obtenir une clé d'abonnement ou un identifiant avec Woocommerce Subscriptions

Je dois obtenir la clé d'abonnement d'un abonnement particulier pour passer à une fonction personnalisée. J'ai référencé la documentation où il montre comment obtenir la clé, mais je n'ai pas réussi à l'intégrer dans mon code. Ainsi, ce que fait mon code, c’est que lorsqu’un renouvellement est déclenché, j’ai un lien avec Processus_abonnement_payment avec ma fonction. Donc, ce code est exécuté uniquement lorsqu'un renouvellement d'abonnement est payé. Le code est ci-dessous.

La documentation est ici: https://docs.woothemes.com/document/subscriptions/develop/functions/management-functions/

Code ici (qui réside dans 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
}

Toute aide est fortement appréciée. Je suis très nouveau sur PHP, alors excusez mon ignorance.

1
nerdalert

J'ai compris la réponse, alors j'ai pensé la poster. Mon code ressemble à ceci maintenant et cela fonctionne:

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

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

Il faut vraiment qu'il y ait plus d'exemples dans la documentation de Woothemes.

2
nerdalert

Tant que vous pouvez obtenir un identifiant de commande, vous pouvez utiliser ce code.

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