WooCommerce 3.0 сломал мое приложение, и я не могу понять, как это исправить сейчас.
У меня есть действие, когда подписка добавляется / изменяется здесь:
Внутри функции я получал сведения о заказе и находил позицию для переменной подписки, чтобы обновить свою настраиваемую базу данных с помощью этой опции, а также получать мета настраиваемого заказа, которую я добавил через 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
объектов, поэтому вам нужно использовать методы получения для получения информации. Я думаю, что по умолчанию он получает товары из заказа, так что класс, вероятно,WC_Order_Item_Product
, который расширяетWC_Order_Item
. Взгляните на методы получения здесь и здесь - person helgatheviking   schedule 20.04.2017brand
когда-либо был ключом массива элементов заказа, так что это могло быть частью проблемы. Вам следует включитьWP_DEBUG_LOG
, чтобы вы могли видеть, что происходит. - person helgatheviking   schedule 20.04.2017$item
теперьWC_Order_Item_Product
объект, и, если я предполагаю, никогда не поддерживал фирменный ключ. Итак, бренд - это атрибут вариации? - person helgatheviking   schedule 20.04.2017