Woocommerce показывает пользовательское сообщение об отложенном заказе при обновлении корзиныJquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Anonymous
 Woocommerce показывает пользовательское сообщение об отложенном заказе при обновлении корзины

Сообщение Anonymous »


У меня есть специальный код, который показывает разные сообщения об отложенном заказе для продуктов в зависимости от их тегов. Он отлично работает на странице продукта и в корзине, но мне нужно, чтобы он отображал персонализированные сообщения в корзине, когда количество>на складе.

Я пробовал экспериментировать с крючками (cart_update, qty_update) и переписывать код для проверки количества товара, но безуспешно. Вот что у меня есть:

function get_custom_availability_message($product, $quantity_required) { $stock_quantity = $product->get_stock_quantity(); $tags = wp_get_post_terms($product->get_id(), 'product_tag', array('fields' => 'slugs')); если ($quantity_required > $stock_quantity) { if (array_intersect(['eco', 'промённики', 'star-trading'], $tags)) { return 'Czas wysyłki: 3-7 dni roboczych'; } elseif (array_intersect(['g12', '5mm', 'm5'], $tags)) { return 'Czas wysyłki: 3-5 dni roboczych'; } // Możesz dodać więcej warunków dla innych tagów } вернуть ноль; } функция custom_availability_logic($availability, $product) { $stock_status = $product->get_stock_status(); $custom_message = get_custom_availability_message($product, 1); если ($ custom_message) { вернуть $custom_message; } if ($stock_status == 'в наличии') { return 'На месте: wysyłka w ciągu 48h'; } elseif ($stock_status == 'onbackorder') { return 'Czas wysyłki: 3-10 dni roboczych'; } вернуть $доступность; } функция custom_cart_availability($availability, $product_data, $cart_item) { $product = $cart_item['данные']; $quantity_in_cart = $cart_item['количество']; // Выбор логики $custom_message = get_custom_availability_message($product, $quantity_in_cart); если ($ custom_message) { верните '' . $ custom_message . '
'; } // Generalne ustawienia (jeśli nie znaleziono niestandardowego komunikatu) $stock_status = $product->get_stock_status(); $stock_quantity = $product->get_stock_quantity(); if ($stock_status == 'в наличии') { return 'На месте: wysyłka w ciągu 48h'; } elseif ($stock_status == 'onbackorder') { возврат ($stock_quantity > 0)? 'На месте: высылка в течение 48 часов': '
Часа высылки: 3-10 дней работы
'; } вернуть $доступность; } add_filter('woocommerce_cart_item_availability', 'custom_cart_availability', 10, 3); function custom_backorder_notification($message, $product_id = 0, $quantity = 0, $order_id = 0) { если ($product_id === 0) { вернуть $сообщение; } еще { $product = wc_get_product($product_id); $custom_message = get_custom_availability_message($product, $quantity); если ($ custom_message) { верните '
' . $ custom_message . '
'; } } вернуть $сообщение; } add_filter('woocommerce_get_availability_text', 'custom_availability_logic', 10, 2); add_filter('woocommerce_cart_item_availability', 'custom_cart_availability', 10, 3); add_filter('woocommerce_cart_item_backorder_notification', 'custom_backorder_notification', 10, 4);
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Jquery»