Измените метку на странице магазина, чтобы отобразить количество на складе

#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. Спасибо. Я осуществлю это как можно скорее