WooCommerce 3.0 brach meine App und ich kann nicht herausfinden, wie es jetzt zu beheben.WooCommerce Subscriptions Hook: Get Bestell Artikel
Ich habe eine Aktion für, wenn ein Abonnement hinzugefügt wird/geändert läuft hier:
Innerhalb der Funktion war ich die Bestelldaten erhalten und die Position für ein Variable Abonnement zu finden, zu meiner benutzerdefinierte DB mit der Option zu aktualisieren, sowie benutzerdefinierte Auftrag Meta, die ich über woocommerce_form_field
hinzugefügt:
Dies funktioniert nicht mehr und alles scheint geschützt? Wie kann ich dies aktualisieren, um mit 3.0 zu arbeiten?
add_action('woocommerce_subscription_status_changed', 'update_subscription', 10, 3);
function update_subscription($id, $old_status, $new_status) {
$sitelink_db = new SSLA_DB_Sitelink();
$order = new WC_Order($id);
$items = $order->get_items();
$subscription_type = '';
$user_id = $order->get_user_id();
$sitelink_domain = get_post_meta($order->id, 'ssla_sitelink_url', true);
foreach ($items as $item) {
if("SiteLink Subscription" === $item['name']) {
$subscription_type = $item['brand'];
}
}
$customer_data = array(
'user_id' => $user_id,
'subscription_type' => $subscription_type,
'domain_referrer' => $sitelink_domain,
'active_subscription' => $new_status,
'date_modified' => date('Y-m-d H:i:s'),
);
$sitelink_db->add($customer_data);
}
Grundsätzlich muß ich, dass eine Variation Namen des Abonnements bekommen in meiner DB zu speichern, sowie, dass benutzerdefinierten Meta-Feld I gemacht. Was auch nicht mehr funktioniert
Die Arrays sollen wieder kompatibel sein, aber Jetzt gibt 'get_items()' ein Array von 'WC_Order_Item'-Objekten zurück, daher müssen Sie die Getter-Methoden verwenden, um Informationen zu erhalten. Ich * denke * es erhält die Bestellartikel Produkte standardmäßig, so dass die Klasse wahrscheinlich 'WC_Order_Item_Product' ist, die' WC_Order_Item' erweitert. Werfen Sie einen Blick auf die Getter [hier] (https://github.com/woocommerce/woocommerce/blob/ master/includes/class-wc-order-item-product.php # L207) und [hier] (https://github.com/woocommerce/woocommerce/blob/master/includes/class-wc-order-item.php # L73) – helgatheviking
Ich kann mich nicht daran erinnern, dass 'brand' jemals ein Bestellartikel-Array-Schlüssel ist, so dass dies ein Teil des Problems sein könnte. Sie sollten 'WP_DEBUG_LOG' aktivieren, damit Sie sehen können, was vor sich geht. – helgatheviking
Die Marke ist eine benutzerdefinierte Variation, die ich in dem variablen Produkt – thatryan