#php #wordpress #woocommerce
Вопрос:
Прямо сейчас мой магазин отображает только 2 значка на странице моего магазина. Специальное предложение и нет в наличии. Я также хотел бы включить количество на складе ниже 10 и разрешить обратный заказ. Я просмотрел несколько плагинов, а также php-код, но, похоже, ничего не работает. То, что я хочу сделать, это отобразить «Доступно только {кол-во}», если запас падает ниже 10, а если он равен 0, то «доступно при обратном заказе». Сайт построен в WooCommerce и WordPress
Я хотел бы, чтобы эти сообщения заменили значок специального предложения, если будут выполнены эти условия. Я прикрепил скриншот ниже:-
Любая помощь очень ценится
Комментарии:
1. Похоже, ваша тема была настроена так, чтобы показывать значок «Специальное предложение» и количество оставшихся запасов. Может быть, действия
woocommerce_before_shop_loop_item_title
иwoocommerce_shop_loop_item_title
так уже зацепили? Не могли бы вы, пожалуйста, добавить какие-либо существующие детали реализации к вашему вопросу?2. Спасибо за ответ. «Специальный значок» исходит от flycart.org/products/wordpress/woocommerce-discount-rules . Единственное, что я еще сделал, это активировал формат отображения акций в WooCommerce и добавил код для изменения текста обратного заказа
Ответ №1:
На самом деле ваш вопрос состоит из двух частей: как изменить текст о наличии на складе и как удалить значок продажи, если соблюдены некоторые критерии уровня запасов продукта.
Изменение текста о наличии на складе должно быть легко достигнуто путем подключения woocommerce_get_availability
фильтра. Получите количество товара на складе и соответствующим образом измените текст. Например.:
add_filter( 'woocommerce_get_availability', 'custom_override_get_availability', 10, 2 );
function custom_override_get_availability( $availability, $_product ) {
$stock_quantity = $_product->get_stock_quantity();
if ( 0 === $stock_quantity ) {
$availability['availability'] = 'Available on backorder';
} elseif ( $stock_quantity < 10 ) {
$availability['availability'] = sprintf( 'Only %s available', $stock_quantity );
} else {
$availability['availability'] = sprintf( '%s left in stock', $stock_quantity );
}
return $availability;
}
Что касается удаления значка продажи, я думаю, что плагин, который вы используете, предоставляет шаблоны, которые можно переопределить. Загляните в Views
папку, вы должны найти sale-flash.php
шаблоны. Затем вы можете переопределить эти шаблоны в своей теме и применить аналогичную логику, поскольку у вас есть доступ к product
. Например, значок продажи отображается только в том случае, если продукт продается, а количество на складе превышает или равно 10:
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
global $post, $product;
?>
<?php if ( $product->is_on_sale() amp;amp; $product->get_stock_quantity() >= 10 ) : ?>
<?php echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale wdr-onsale">' . esc_html__( 'Sale!', 'woocommerce' ) . '</span>', $post, $product ); ?>
<?php endif;
Хотя я не совсем уверен, хотите ли вы удалить значок продажи, когда количество товара на складе меньше 10.
Комментарии:
1. Спасибо. Я осуществлю это как можно скорее