Вы не можете сделать одну функцию, которая работает для обоих ловушек, так как они имеют разные аргументы ловушек:
- Хук
woocommerce_cart_item_class
использует $class
, $cart_item
и $cart_item_key
аргументы
- Хук
woocommerce_order_item_class
использует $class
, $item
и $order
аргументы
Как видите, ваш $values['_wc_pao_addon_name']
не может работать в вашем коде.
1) Корзина:
Для проверки и получения правильного meta_key, используемого плагином дополнений Woocommerce Product, вы сначала будете использовать подключенную функцию тестирования, добавленную в конце этого ответа…
Как только вы найдете нужное meta_key
, вы замените следующий код addon_parent_id
на право meta_key
:
add_filter( 'woocommerce_cart_item_class', 'additional_class_to_cart_item_classes', 10, 3 );
function additional_class_to_cart_item_classes ( $class, $cart_item, $cart_item_key ) {
if ( isset( $cart_item['addon_parent_id'] ) ) {
$class .= ' fl-addon-item';
}
return $class;
}
Код помещается в файл function.php вашей активной дочерней темы (active theme). Должно работать на корзину и оформить заказ.
2) Для позиций заказов (Заказ получен, просмотр заказа, Оплата заказа и уведомления по электронной почте) :
Это сложнее, так как вам нужно знать, как _wc_pao_addon_name
сохраняется в элементах заказа. Для этого вам нужно взглянуть в таблицу базы данных wp_woocommerce_order_itemmeta
в поисках meta_key
, которые соответствуют _wc_pao_addon_name
.
Как только вы найдете нужное значение meta_key
, вы замените следующий код _wc_pao_addon_name
на право meta_key
:
add_filter( 'woocommerce_order_item_class', 'additional_class_to_order_item_classes', 10, 3 );
function additional_class_to_order_item_classes ( $class, $item, $order ) {
if ( $item->get_meta('_wc_pao_addon_name') ) {
$class .= ' fl-addon-item';
}
return $class;
}
Код помещается в файл function.php вашей активной дочерней темы (active theme). Это должно работать для пунктов заказа.
Проверьте и получите правильные пользовательские метаданные корзины (только тестирование) :
Чтобы выяснить в объекте корзины, какой правильный мета-ключ для пользовательских метаданных добавлен плагинами в качестве дополнений Woocommerce Product, вы будете использовать следующее (которое отобразит на странице корзины необработанные данные элементов корзины)
<code>// Testing and getting cart item raw data
add_action( 'woocommerce_before_cart', function(){
// Loop through cart items
foreach(WC()->cart->get_cart() as $cart_item) {
// Output cart item raw data
echo '<pre>'; print_r($cart_item); echo '
';
}
}, 987);
Код помещается в файл function.php вашей активной дочерней темы (активной темы).