Отключение покупки одного товара в woocommerce - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь отключить возможность покупки выбранного продукта, но все материалы, которые я нашел до сих пор, не работают для меня.Я хотел бы исключить конкретный продукт, предпочтительно, удалив кнопку, потому что я хочу, чтобы этот продукт работал как любой другой, но без возможности покупки.

Этот код был бы идеальным для меня:

add_filter('woocommerce_is_purchasable', 'filter_is_purchasable');
function filter_is_purchasable( $is_purchasable, $product ) {
    return ( $product->id == 534 ? false : $is_purchasable );
}

К сожалению, это не работает.Есть идеи?

1 Ответ

0 голосов
/ 21 ноября 2018

Этот код немного устарел со времен Woocommerce 3, так как $product->id необходимо заменить на $product->get_id() ... Попробуйте вместо этого (где 534 - идентификатор соответствующего продукта, где кнопка добавления в корзину не появится) :

add_filter('woocommerce_is_purchasable', 'purchasable_product_customizations', 10, 2 );
function purchasable_product_customizations( $is_purchasable, $product ) {
    if( in_array( $product->get_id() == 534 )
        $is_purchasable = false;

    return $is_purchasable;
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Протестировано и работает.


Если ваш идентификатор продукта является переменным продуктом

Для переменного идентификатора продукта, в котором вы хотите отключить все варианты, вы замените эту строку:

if( in_array( $product->get_id() == 534 )

этим:

if( in_array( $product->get_parent_id() == 534 )

Если это все еще не работает, значит, что что-то еще взаимодействует и создает проблемы, как некоторые настройки, сделанные вами, вашей темой или плагином ...Также это может быть потому, что вы не добавляете этот код в нужном месте.

...