Nano Hash - криптовалюты, майнинг, программирование

Условная кнопка добавления в корзину в архиве продуктов Woocommerce

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

Например

Продукт A - Флажок активен -> Показать кнопку "Найти дилера" Продукт Б - Флажок неактивен -> Отображать кнопку добавления в корзину по умолчанию

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

Однако я не уверен, как сохранить кнопку добавления в корзину по умолчанию 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

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

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 вашей активной дочерней темы (или активной темы). Он должен работать.

06.06.2019
  • это сработало отлично. На самом деле я пытался добавить php-форму с некоторыми значениями и кнопку на проверенных продуктах, которую нужно было заменить кнопкой отправки. Я оставил это, думая, что могу просто заменить код вместо $button = '<a href="#" class="button alt">' . __( "Find a dealer", "woocommerce" ) . '</a>';. Хотя это действительно работает, с ним все еще отображаются кнопки «Добавить в корзину» и «Найти дилера». Мне удалось использовать немного грязного хака, чтобы исправить это, сохранив удаление класса. Есть ли способ сделать это лучше? Я обновил основную информацию. 06.06.2019
  • моя вина. Я опубликую еще один вопрос, по какой-то причине я подумал, что мне не разрешили опубликовать новый вопрос, относящийся к той же теме. Как всегда, спасибо за помощь! 07.06.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..