Dudaevskiy
5/23/2019 - 11:09 AM

Дружим Contact Form 7 c WC Fields Factory и с Art WooCommerce Order One Click

// ========================================================================================
// Дружим Contact Form 7 c WC Fields Factory и с Art WooCommerce Order One Click
//
// Скрипт вставляет доп. поля WC Fields Factory в попап окно Art WooCommerce Order One Click, при отправке формы вставляет значения из доп полей в скрыты input
//
//Art WooCommerce Order One Click 
//https://ru.wordpress.org/plugins/art-woocommerce-order-one-click/
//
//WC Fields Factory
//https://pe.wordpress.org/plugins/wc-fields-factory/

// START
// ========================================================================================
jQuery(document).ready(function($){
 
// watch the content
$(".summary.entry-summary").watch({
    properties: "top,left,opacity,display,attr_class,prop_innerHTML",
    watchChildren: true,
    callback: function (data, i) {
    // ==============================================================
		// Если на странице отсутствует блок для перемещения
        if (!$('.awooc-col.columns-right form table.wccpf_fields_table').length > 0){
            // Указываем родительский блок, блоков для перемещения и вставки
            $("body.single-product").each(function(){
                             // Указываем то что нам необходимо переместить
                            var Peremeschaemuy = 'form.cart .wccpf-fields-container table.wccpf_fields_table';
                            // Тщем перемещаемый блок
                             var ForAfterInsertVAR = $(this).find(Peremeschaemuy);

                             // Вставляем перемещаемый блок за или перед необходимым элементом страницы
                             ForAfterInsertVAR.clone().insertBefore($(this).find('.awooc-col.columns-right input.wpcf7-form-control.wpcf7-submit'));
            });
//            console.log("Блока в теле страницы нет");
		//
		// Если на странице ПРИСУТСТВУЕТ блок для перемещения
        } else if ($('.awooc-col.columns-right form table.wccpf_fields_table').length > 0){

//       	 console.log("Блок вставлен");

        }
// Отправляем значения полей плагина для Woocommerce в HidenInput CF7
$('.awooc-col.columns-right input.wpcf7-form-control.wpcf7-submit').on('click',function(){

	var wccpf_fields_table = $(this).closest('form.wpcf7-form').find('table.wccpf_fields_table');
	var label = wccpf_fields_table.find('td.wccpf_label').text();
	var vol = wccpf_fields_table.find('td.wccpf_value input.wccpf-field').attr('value');
//---------------------------------------
// создание пустого ассоциативного массива
// Годный урок
// https://itchief.ru/javascript/associative-arrays
var KeyAndValue = new Map(); 
var Insert;

$(this).closest('form.wpcf7-form').find('table.wccpf_fields_table').each(function(){
 
var Label = $(this).find('tbody td.wccpf_label');
var LabelText = $(this).find('tbody td.wccpf_label').text()+': ';
var Value = $(this).find('tbody td.wccpf_value input').attr('value');
// console.log($(this).html());
// добавить в массив одну пару "ключ-значение"
KeyAndValue.set(LabelText,Value);
// console.log(KeyAndValue);

// И погнали перебрать
for (let pair of KeyAndValue.entries()) {

  	// pair - это массив [key, values]
    //   console.log(pair[0]); // ключ
    //   console.log(pair[1]); // значение
    //   console.log(`Ключ = ${pair[0]}, значение = ${pair[1]}`);
    var Insert = Insert + ' ✅'+pair[0]+pair[1]+' ';
}

Insert = Insert.replace('undefined', '');
// console.log(Insert);
// Очищаем переменную
//<br>
$(this).closest('form.wpcf7-form').find('input#HIDDENINPUT').attr('value', Insert);
// console.log(Label.text()+': '+Value);
});

//---------------------------------------

});
    // ==============================================================
    }
});
 

});

// ========================================================================================
// Дружим Contact Form 7 c WC Fields Factory и с Art WooCommerce Order One Click
// END
// ========================================================================================
td.wccpf_label label {
    font-family: "Roboto Slab", Sans-serif !Important;
    font-size: 15px !important;
}

form.cart .wccpf-fields-container {
    display: none;
}

.awooc-form-custom-order-qty {
    display: none;
}

.awooc-col.columns-right {
    min-width: 100%;
}

table.wccpf_fields_table td.wccpf_label, table.wccpf_fields_table td.wccpf_label label {
    width:inherit !important;
}


.awooc-col.columns-right div.wpcf7 {
    padding-left: 0px;
}