it-swarm.com.de

So erhalten Sie einen Abonnementschlüssel oder eine ID mit Hilfe von Woocommerce-Abonnements

Ich muss den Abonnementschlüssel eines bestimmten Abonnements abrufen, um an eine benutzerdefinierte Funktion übergeben zu können. Ich habe auf die Dokumentation verwiesen, in der gezeigt wird, wie der Schlüssel abgerufen wird, aber ich habe dies nicht in meinen Code integriert. Mein Code bewirkt also, dass ich mich mit meiner Funktion an processing_subscription_payment anschließe, wenn eine Verlängerung ausgelöst wird. Daher wird dieser Code nur ausgeführt, wenn eine Abonnementverlängerung bezahlt wird. Code ist unten.

Die Dokumentation finden Sie hier: https://docs.woothemes.com/document/subscriptions/develop/functions/management-functions/

Code hier (der sich in functions.php befindet):

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
}

Jede Hilfe wird sehr geschätzt. Ich bin sehr neu in PHP, entschuldigen Sie meine Unwissenheit.

1
nerdalert

Ich fand die Antwort heraus und dachte, ich würde sie posten. Mein Code sieht jetzt so aus und es funktioniert:

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

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

In der Dokumentation zu Woothemes muss es jedoch wirklich mehr Beispiele geben.

2
nerdalert

Solange Sie die Bestellnummer erhalten, können Sie diesen Code verwenden.

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