Woocommerce — отключите кнопку add_to_cart, когда товар находится в резервном заказе

#php #wordpress #woocommerce

Вопрос:

Я хочу отключить кнопку «Добавить в корзину», когда товар доступен при обратном заказе.

Я пробовал что-то подобное, но это совсем не работает:

 function remove_add_to_cart ($product){ 
if($product->is_on_backorder){
    add_filter( 'woocommerce_is_purchasable', '__return_false');}}
 

есть какие-нибудь предложения, пожалуйста?

Ответ №1:

Одним из решений (в зависимости от того, что вы на самом деле хотите сделать) может быть полное удаление формы add_to_cart, если продукт находится в резервном заказе. Могут быть и другие решения, но ваш вопрос немного расплывчат. Это специально для отдельной страницы продукта. Вы не уточнили в вопросе.

 add_action('woocommerce_single_product_summary', 'check_if_backordered', 1 );
function check_if_backordered(){
    global $product;
    if ($product->is_on_backorder()){
        remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30);
        // Here you can insert whatever you want in its place
    }
}
 

Комментарии:

1. Я согласен с вами, но также я имел в виду одну страницу продукта, поэтому вы отправляете мне правильную информацию. Теперь все работает, большое вам спасибо! с помощью этого кода: add_action(‘woocommerce_single_product_summary’, ‘check_if_backordered’, 1 ); функция check_if_backordered(){ глобальный $продукт; если ($продукт->is_on_backorder()){ add_filter( ‘woocommerce_is_purchasable’, ‘__return_false’); } }

2. Если этот ответ подходит для вас… пожалуйста, примите и/или проголосуйте. Спасибо

3. нет проблем, я чуть не забыл это сделать… еще раз большое вам спасибо!