Доброго времени! Есть скрипт через который генерируется форма с кнопкой заказа Весь код по ссылке http://antistress.kupitovar24.ru/forma.js Спойлер: Код // генерация формы function generate_form() { // номер формы var dropshippingApiFormNumber = $("#dropshipping-api-form-body").attr('number'); // номер поьльзователя var dropshippingApiFormOwner = $("#dropshipping-api-form-body").attr('user'); var data = 'form='+dropshippingApiFormNumber+'&user='+dropshippingApiFormOwner; $.ajax({ url: 'http://rusdropshipping.ru/api/api-form.php?action=download_form', type: 'POST', data: data, success: function(response) { var result = jQuery.parseJSON(response); if(result.status == 'success') { $("#dropshipping-api-form-body").html(result.html); jQuery(function($) { // Установка маски для поля ввода номера телефона $('.api-form-phone').mask('71111111111'); }); } } }); } generate_form(); // функция оформления заказа function formApiAddNewOrder(form_id) { var items = $("#api-form-items-form-"+form_id).serialize(); // заказанные товары var name = $("#api-form-name-"+form_id).val(); // имя var phone = $("#api-form-phone-"+form_id).val(); // телефон var comment = $("#api-form-comment-"+form_id).val(); var data = 'form_id='+form_id+'&name='+name+'&phone='+phone+'&comment='+comment+'&'+items; $.ajax({ url: 'http://rusdropshipping.ru/api/api-form.php?action=add_new_order', type: 'POST', data: data, success: function(response) { var result = jQuery.parseJSON(response); // удаляем все отметки об ошибках $(".my-error-class").html(''); if(result.status == 'success') { $("#api-form-body-block-"+form_id).html('<div id="generating-result-alert" class="alert alert-success"><h4>'+result.message+'</h4></div>'); } else if(result.status == 'error') { $(result.errors).each(function(key, value){ $("#api-form-"+value.type+"-error-"+form_id).html(value.text); }); } else if(result.status == 'failed') { $("#api-form-message-block-"+form_id).html('<div id="generating-result-alert" class="alert alert-danger">'+result.message+'</div>') setTimeout(function(){ $("#generating-result-alert").remove(); }, 1000); } } }); } Форма выглядит примерно так Нужно на кнопку посадить этот пиксель Код (Javascript): <script> fbq('track', 'AddToCart', { value: 3.50, currency: 'USD' }); </script> Умные головы подскажите как это сделать?
вот в эту часть добавить Код (Javascript): if(result.status == 'success') { $("#api-form-body-block-"+form_id).html('<div id="generating-result-alert" class="alert alert-success"><h4>'+result.message+'</h4></div>'); } что бы получилось Код (Javascript): if(result.status == 'success') { fbq('track', 'AddToCart', {value: 3.50,currency: 'USD'}); $("#api-form-body-block-"+form_id).html('<div id="generating-result-alert" class="alert alert-success"><h4>'+result.message+'</h4></div>'); }
нет, данные будут передаваться после того, как оформление пройдет удачно и вернется success, иначе при каждом нажатии будут передаваться данные, а если человек неверно заполнил форму и заказ не оформился - ему придется нажимать снова и снова будут отправляться те же данные
в принципе верно, но данный скрипт подойдет только для одной формы с конкретной ценой. вам нужна более универсальная формула в которую будет передаваться цена из текущей формы заказа т.е. вот на цену вешаем Id <td id="api-form-price-856" class="vertical-align-middle">1980</td> далее в функции используем Код (Javascript): function formApiAddNewOrder(form_id) { var items = $("#api-form-items-form-"+form_id).serialize(); // заказанные товары var name = $("#api-form-name-"+form_id).val(); // имя var phone = $("#api-form-phone-"+form_id).val(); // телефон var comment = $("#api-form-comment-"+form_id).val(); var data = 'form_id='+form_id+'&name='+name+'&phone='+phone+'&comment='+comment+'&'+items; var price = $("#api-form-phone-"+form_id).val(); // цена Код (Javascript): if(result.status == 'success') { fbq('track', 'AddToCart', {value: price,currency: 'USD'}); // добавлени в карзину fbq('track', 'Purchase', {value: price,currency: 'USD'});// покупка. нажали кнопку и офрмили заказ $("#api-form-body-block-"+form_id).html('<div id="generating-result-alert" class="alert alert-success"><h4>'+result.message+'</h4></div>'); } если нужно в другой валюте - конвертируйте здесь же
Вроде все правильно первый раз сделал. Но форма не отправляется по нажатию кнопки. Использовать лучше второй вариант?
в консоль смотрите у вас там Код (Text): Uncaught ReferenceError: fbq is not defined т.е. пиксель не подключен и fbq не инициализировано
использовал ваш второй вариант и ничего не получилось <script src="http://kulon.kupitovar24.ru/forma2.js"></script> Вообще ни чего не загрузилось --- Добавлено --- а как это сделать? --- Добавлено --- Пиксель фейсбук работает, но возможно данные еще не обновились.... Пожалуйста, посмотрите http://kulon.kupitovar24.ru/forma2.js все ли верно? лишних пробелов нет? --- Добавлено --- http://prntscr.com/f4pq7n ну у меня так в консоле
Это вот из за этого т.е. вот на цену вешаем Id <td id="api-form-price-856" class="vertical-align-middle">1980</td> В форме http://kulon.kupitovar24.ru/forma2.js Форма и не грузится Эту запись <td id="api-form-price-856" class="vertical-align-middle">1980</td> куда надо прописать? У меня так http://prntscr.com/f4pzwy Однако первый вариант без цены форму отображает но не инициилизирует пиксель При этом по нажатию кнопки заказ фиксируется, но не появляется сообщение о том что форма успешно отправлено и что менеджеры свяжутся. Просто кликаю по кнопке. событие срабатывает, заказ в систему передается и все. Получается любое вмешательство в код чревато его нестабильной работой? Или что то нужно поправить еще?
Я правильно понимаю если эти строчки кода Код (Javascript): fbq('track', 'Purchase', {value: 50.00,currency: 'USD'}); // покупка. нажали кнопку и офрмили заказ fbq('track', 'AddToCart', {value: 3.50,currency: 'USD'}); // Добавили в карзину здесь Код (Javascript): if(result.status == 'success') { fbq('track', 'Purchase', {value: 50.00,currency: 'USD'}); // покупка. нажали кнопку и офрмили заказ fbq('track', 'AddToCart', {value: 3.50,currency: 'USD'}); // Добавили в карзину $("#api-form-body-block-"+form_id).html('<div id="generating-result-alert" class="alert alert-success"><h4>'+result.message+'</h4></div>'); } не инициализируется то есть не выполняется, то success и не выполняется то есть не срабатывает эта строчка кода ? Код (Javascript): $("#api-form-body-block-"+form_id).html('<div id="generating-result-alert" class="alert alert-success"><h4>'+result.message+'</h4></div>'); --- Добавлено --- Почти так. С простыми кодами работал, когда сам что то писал или копировал. в этом же случае скрипт создан был не мной. Я пытаюсь внедрить в него пиксель. Первый ваш вариант понятен и форма грузится и заказ в систему попадает. Это и нужно было а вот второй вариант вашего кода меня запутал. Поэтому если сложно растолковать то и не надо. Спасибо за помощь! --- Добавлено --- Базовый код пикселя не сохранился. Теперь все работает в первом варианте кода.
вот это HTML: <td id="api-form-price-856" class="vertical-align-middle">1980</td> нужно в html в форму добавить сейчас у вас HTML: <td class="vertical-align-middle">1980</td> т.е. по аналогии того, как передаются у вас данные имени и телефона через id="api-form-name-856" и id="api-form-phone-856" Определяются в скрипте они же вот так Код (Javascript): var name = $("#api-form-name-"+form_id).val(); // имя var phone = $("#api-form-phone-"+form_id).val(); // телефон
заменить все вызовы fbq() на свою функцию, внутри которой будет так: Код (Javascript): function myfbq(параметры) { try { fbq(параметры); } catch (e) { } return true; }