Woocommerce показывает пользовательское сообщение об отложенном заказе при обновлении корзины ⇐ Jquery
Woocommerce показывает пользовательское сообщение об отложенном заказе при обновлении корзины
У меня есть специальный код, который показывает разные сообщения об отложенном заказе для продуктов в зависимости от их тегов. Он отлично работает на странице продукта и в корзине, но мне нужно, чтобы он отображал персонализированные сообщения в корзине, когда количество>на складе.
Я пробовал экспериментировать с крючками (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);
У меня есть специальный код, который показывает разные сообщения об отложенном заказе для продуктов в зависимости от их тегов. Он отлично работает на странице продукта и в корзине, но мне нужно, чтобы он отображал персонализированные сообщения в корзине, когда количество>на складе.
Я пробовал экспериментировать с крючками (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);
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Woocommerce показывает пользовательское сообщение об отложенном заказе при обновлении корзины
Anonymous » » в форуме Php - 0 Ответы
- 49 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Woocommerce – отключить кнопку add_to_cart, когда товар находится в отложенном заказе
Anonymous » » в форуме Php - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-