En

Как скрыть кнопку «Подробнее», карточки товара, которого нет в наличии, чтобы при этом работал AJAX при добавлении товара в корзину на сайте с WooCommerce.

10.04.2022

 

1. Нужно скопировать код ниже, в файл functions.php, который находится в папке вашей темы (код был взят с официального сайта woocommerce).

 
/**
 * Hide loop read more buttons for out of stock items 
 */
if (!function_exists('woocommerce_template_loop_add_to_cart')) {
    function woocommerce_template_loop_add_to_cart() {
        global $product;
        if ( ! $product->is_in_stock() || ! $product->is_purchasable() ) return;
        wc_get_template('loop/add-to-cart.php');
    }
}
 

2. Создать в корневой папке вашей темы, папки в последовательности — woocommerce\loop\, затем создать в папке — loop, файл — add-to-cart.php, после, скопировать в него код ниже:

 
/**
 * Loop Add to Cart
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/loop/add-to-cart.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see         https://docs.woocommerce.com/document/template-structure/
 * @package     WooCommerce\Templates
 * @version     3.3.0
 */
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}
global $product;
echo sprintf(
    '<a href="%s" data-product_id="%s" class="%s custom_button_buy">%s</a>',
    $product->add_to_cart_url(),
    $product->get_id(),
    'btn btn-black product_type_' . $product->get_type() . ' ' . ( $product->supports( 'ajax_add_to_cart' ) ? 'add_to_cart_button ajax_add_to_cart' : '' ),
    $product->add_to_cart_text()
);
 

Этот код заменит оригинальный код плагина WooCommerce. Если этого не сделать, то AJAX не будет работать, так как в оригинальном файле плагина не прописаны — «data-product_id=»%s» и %s custom_button_buy.

Поделиться

Копировать

BTC (Network BTC) - 1C2EWWeEXVhg93hJA9KovpkSd3Rn3BkcYm

Ethereum (Network ERC20) - 0x05037ecbd8bcd15631d780c95c3799861182e6b8

Похожие посты

Этот сайт использует файлы cookies. Нажимая кнопку 'Принять' или продолжая пользоваться сайтом, вы соглашаетесь на использование файлов cookies.