Если в WooCommerce требуется вместо кнопки «купить» для каждого товара, у которого не указана цена, выводить кнопку «цена по запросу» или что-то в этом плане, добавим в файл functions.php вашей темы следующий код:
function my_price_replace($price, $_product) {
if ($_product->get_price() == 0) return __('
<span><a class="fancybox-inline btn" href="#contact_form_pop">Цена по запросу</a></span>
<div class="fancybox-hidden" style="display: none;">
<div id="contact_form_pop">'.do_shortcode('Ошибка: Контактная форма не найдена.
').'</div></div>
');
return $price;
}
add_filter( 'woocommerce_empty_price_html', 'my_price_replace', 1, 2 );
Для работы данного метода у вас должны быть установлены плагины Easy FancyBox и Contact Form 7.
В настройках Easy FancyBox должен быть включен параметр «Inline content».
А в плагине Contact Form 7 вы создадите ту форму, которая будет выводиться при нажатии на кнопку «Цена по запросу».
Созданная вами форма будет иметь свой код вставки, в коде выше это
Ошибка: Контактная форма не найдена.
. Замените выделенную красным часть текста в коде на свою.Для задания стилей для кнопки редактируйте класс btn через css.
Здравствуйте, столкнулся с такой проблемой на теме woodmart все работает в режиме каталога но при переходе на страницу товара при нажатии на кнопку выходит окошко с названием полей но без форм для заполнения и кнопки отправить, что интересно если вставить поля с значением textarea то они выводятся , все остальные значения нет , и кнопка отправить так же не выходит, что делать?
Здравствуйте, возможно скрипты и стили темы перебивают стандартные поля, тут поможет только персональная доработка.
А если мне нужно чтобы при этом условии выводился другой скрипт уже со своими окнами и кнопкой , как мне это верно вставить внутрь вашего кода?
Смотря какой скрипт и как он работает, возможно его и не нужно помещать внутрь этого кода, а просто где-то на странице, а внутри этого блока только какую-то разметку.
Скрипт сам по себе работает как кнопка с попапом уже внутри, единственное в чем проблема это вывести его с условием , так как если его вставить вместо span в вашем скрипте
например:
function my_price_replace($price, $_product) {
if ($_product->get_price() == 0) return __(‘ мой скрипт ‘).’
‘);
return $price;
}
add_filter( ‘woocommerce_empty_price_html’, ‘my_price_replace’, 1, 2 );
В этом случае выдет синтаксическую ошибку пробовал и другие вариации но что то никак не получается
Вы сами ответили на свой вопрос, ищите причину синтаксической ошибки. Либо закажите платную доработку вашего вопроса.
Добрый день, а как сделать, чтобы такое дело происходило не при нулевой цене, а цене к примеру больше 40000?
Попробуйте строку с условием заменить на:
if ($_product->get_price() >= 40000) return __(‘
Добрый день.
Установил ваш код но при нажатии не всплывает форма, в чем может быть дело?
Нужно разбираться на конкретном примере, пишите в телеграм @Krueger032
Если нужно добавить в форму автоподстановку названия продукта, то можете воспользоваться следующей конструкцией:
1. Добавить в поле формы id:product-name-input . Выглядит так:
[text your-subject id:product-name-input]
2. Добавить в тэг конструкцию onClick. Примерно так:
get_title().’\’;»>Цена по запросу
3. По желанию можно скрыть это поле. В стили добавьте #product-name-input {display:none}
не понятно куда прописывать get_tittle, попроовал не работает. Обьясните подробнее пожалуйста.
Preis anfordern
прописал такую конструкцию. Мне выдает на месте кнопки «Запрос цены» форму запроса цены, а ниже выдает форма раскрытую в шаблоне сразу с названием и фото как похожий товар.
span a class=»fancybox-inline btn» href=»#contact_form_pop» onclick=»get_title().’\’;»>Запрос цены a span
Помогите с get_title
Здравствуйте! У меня немного сложная задача — имеются разные категории товаров, где цена товаров по запросу, и нужно, чтобы для товаров из разных категорий при нажатии на ссылку «цена по запросу» всплывала своя контактная форма в зависимости от категории товара (отправка запроса на разные адреса). Если можно, пришлите код на почту. Спасибо!
Нужно знать id категорий, после объявления функции получить и перебрать все категории текущего товара, а потом сделать условие вывода, сделать несложно, но платно.
Сколько стоить будет?
Я Вам на почту продублировал.
А возможно, если в контактной форме, есть поле тема, то в нее записать текст = имени товара?
С помощью js-да. Если что пишите в личку в вк или еще куда-нибудь.
Добрый день, а если товар вариативный, как сделать проверку?
Первое что приходит в голову, это создать в форме скрытое поле, и туда с помощью js передавать вариацию товара, если нужно сделаю Вам платно.
И еще вопрос, как добавить снизу кнопки номер телефон ну или просто текст, подскажите?
Ниже строчки: <span><a class=»fancybox-inline btn» href=»#contact_form_pop» rel=»nofollow»>Цена по запросу</a></span>
Добавить нужный вам текст <p>Номер телефона: 8 999 555 66 44</p>
Я в этом деле нуб, но вставив ваш код все отлично работает.
Вопрос только 1, как изменить стиль кнопки «Цена по запросу», как файл редактировать.
Стили редактируются через css
Здраствуйте. Подключил запрос цены вашим способом. Имеются несколько проблем. На главной странице по шаблону темы frontpage.php отображаемый товар имеет кнопку, но при вызове easyfancy box открывается форма без полей и кнопки отправить. В форме они имееются. На мобильных версиях вообще не работает. С карточки товара все работает. Кроме мобильных версии. Есть ли способы рещения данных проблем? Заранее спасибо
Здравствуйте, проверьте на одной из стандартных тем WP. Возможнен конфликт скриптов вашей темы и данного решения. Если на стандартной теме все будет работать норм, тогда нужно делать правки в вашей теме. Это платно, пишите в личку.
Возможно ли данную кнопку сделать только для страницы товаров, а на странице категории выводить просто надпись «Цена по запросу?»
Нужно сделать проверку на нахождение на странице каталога, попробуйте использовать функцию is_post_type_archive, примерно так:
if (is_post_type_archive( 'product' )) { // код простой надписи } else { // код кнопки }Здравствуйте! А как сделать чтобы строка цена по запросу можно было еще перевести на другой язык через плагин polylang?
К сожалению пока не работал с данным плагином, если плагин работает с файлами переводов, тогда нужно создать такие файлы и подгрузить их в функцию.
Короче, остался непонятным только последний момент — форма запроса цены автоматически не закрывается по отправке… То есть все отправляется, но у клиента на экране та же форма… Похоже это скорее к easy fancy box вопрос…
Работает отлично, но оказался такой косяк — в АДМИНКЕ для товара с нулевой ценой в графе ЦЕНА в текстовом виде прет в одну длинную колонку форма запроса цены… Подскажите, где копнуть вывод в админке чтобы это безобразие убрать?
Один из вариантов, в админке отключить колонку с ценой, другой вариант написать дополнительное условие — проверку на нахождение в админке, функция is_admin()
https://wp-kama.ru/function/is_admin
Вандебра! Вставляйте в вашу статью:
if ($_product->get_price() == 0 && !is_admin()) return __(‘
отлично пашет, в админке красота и порядок. На фронте все как надо — с запросом.
Разобрался. Спасибо, отлично работает.
Здравствуйте
«Замените выделенную красным часть текста в коде на свою.»
Блин, я дальтоник. Где выделено красным?
Здравствуйте, поправил.
Добрый вечер!
Подскажите, как прописать , чтобы всплывающая форма находилась по центру экрана . Ведь возможно кнопка будет в самом низу
Здравствуйте, если вы используете плагин Easy FancyBox для создания всплывающего окна, то окно по умолчанию выводится по центру, а форму можно настроить через css, пришлите ссылку или скриншот, чтобы я понял проблему точнее.
День добрый! Большое спасибо за статью. Информация помогла. Успехов Вам. И побольше полезной информации