@Dropych

Wordpress можно ли получить адрес или название ссылки для Contact-form-7?

0

Стоит wocoomerce посредство contact form 7 реализована обратная связь. на каждый товар, можно задать вопрос. возможно ли получить ссылку или название товара, про который будет спрашивать человек, не заходя в товар, а из каталога ? на сайте нашел такое:

$('.zakaz').click(function()
{
titleService=$(this).attr('data-title-service');
$('.hide-title').val(titleService);
});

я добавил это в common js , а шорткод

[hidden title-service class:hide-title id:title-service]

но почему-то нифига. тапками не кидайтесь) неук p.s. js код изменил название кнопки на своё конечно
  • Вопрос задан
  • 64 просмотра
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix
Java Software Engineer
Здравствуйте!
Сложно что-либо советовать, когда с вашей стороны вы не можете провести дебаг и сказать в чем именно заключается проблема.
Вот, например:
$('.zakaz').click(function()
{
titleService=$(this).attr('data-title-service');
$('.hide-title').val(titleService);
});

Во-первых, вы кликаете на кнопку "Заказ". Если это кнопка сабмита контактной формы, то лучше добавить
e.preventDefault(); а после вставки значения в нужное поле сабмитить черезsubmit()
$('.zakaz').click(function(e) {
e.preventDefault();
titleService=$(this).attr('data-title-service');
$('.hide-title').val(titleService);
});

А если это не кнопка сабмита контактной формы, а например, отображает модалку или еще что-нибудь, а сабмит происходит позднее, то preventDefault не нужен.

Далее непонятно определили ли вы переменную titleService выше в в коде common.js Потому как у вас этой переменной и нет.
Надо вместо этого добавить titleService=$(this).attr('data-title-service');
var titleService=$(this).attr('data-title-service');

или
let titleService=$(this).attr('data-title-service');


Далее вы опять-таки не указали html код вашего скрытого поля. Обратите внимание, что например, если у этого hidden поля есть атрибут disabled, то при сабмите оно не отправится.
В общем, много нюансов. Научитесь дебажить код. А для этого откройте консоль браузера, ставьте точки и проверяйте код в консоли браузера.

Ах да, еще нюанс:
Вот, ваш код:
$('.zakaz').click(function(e) {
e.preventDefault();
titleService=$(this).attr('data-title-service');
$('.hide-title').val(titleService);
});

Попробуйте "знаки доллара" сменить на jQuery или обернуть ваш код в
jQuery(document).ready(function( $ ) {
// Ваш код тут
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы