WooCommerce 3.0打破了我的應用程序,我無法弄清楚現在如何解決它。WooCommerce訂閱掛鉤:獲取訂單項目
我在添加訂閱的動作/改變運行位置:
在函數內部我得到訂單的詳細信息,並找到行項目的訂閱變量來更新我的自定義數據庫與選項,以及獲得自定義訂單元,我通過woocommerce_form_field
添加:
這不再起作用,一切似乎保護?我怎樣才能更新這個3.0版本?
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);
}
基本上我需要獲取訂閱的變體名稱以存儲在我的數據庫中,以及我製作的自定義元字段。哪些不工作了
的陣列應該是回到兼容,但現在'get_items()'返回一個'WC_Order_Item'對象的數組,所以你需要使用getter方法來獲取信息。我*認爲*它默認獲得訂單商品產品,因此該類可能是'WC_Order_Item_Product',它擴展了'WC_Order_Item'。查看getters [here](https://github.com/woocommerce/woocommerce/blob/ master/includes/class-wc-order-item-product.php#L207)和[here](https://github.com/woocommerce/woocommerce/blob/master/includes/class-wc-order-item.php #L73) – helgatheviking
我不記得'品牌'永遠是一個訂單項數組的關鍵,這可能是問題的一部分。你應該打開'WP_DEBUG_LOG',這樣你就可以看到發生了什麼。 – helgatheviking
該品牌是我在變量產品 – thatryan