Условная кнопка «Добавить в корзину» в архиве продуктов Woocommerce - PullRequest
1 голос
/ 06 июня 2019

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

Например,

Продукт A - флажок активен -> Показать кнопку поиска дилера Продукт B - флажок не активен -> Показать кнопку добавления в корзину по умолчанию

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

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

add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_default_button' );
    function replace_default_button(){
    global $product;

   if ($product->get_meta('_checkbox_active') === 'yes' ){
      return '<button>Finda Dealer</button>';}

    else {add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );}

1 Ответ

1 голос
/ 06 июня 2019

Вы просто забыли аргументы перехваченных переменных функции.Вместо этого попробуйте следующее:

add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_default_button', 10, 2 );
function replace_default_button( $button, $product ){
    if ( $product->get_meta('_checkbox_active') === 'yes' ){
        $button = '<a href="#" class="button alt">' . __( "Find a dealer", "woocommerce" ) . '</a>';
    }
    return $button;
}

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

...