var inpostjsGeowidgetModal; let inpost_pl_is_ajax_get_point_running = false; function inpost_pl_get_shipping_method_js_mode() { let data = {}; let method = jQuery( 'input[name^="shipping_method"]:checked' ).val(); let postfix = ''; if ('undefined' == typeof method || null === method ) { method = jQuery( 'input[name^="shipping_method"]' ).val(); } if (typeof method != 'undefined' && method !== null) { if (method.indexOf( ':' ) > -1) { let arr = method.split( ':' ); method = arr[0]; postfix = arr[1]; } } data.method = method; data.postfix = postfix; return data; } function inpost_pl_select_point_callback_js_mode(point) { let selected_point_data = ''; let parcelMachineAddressDesc = ''; let address_line1 = ''; let address_line2 = ''; let point_name = ''; if ( 'name' in point ) { point_name = point.name; if (point_name.startsWith( "PL_" )) { // Remove first 3 characters "PL_". point_name = point_name.slice( 3 ); } } if ( typeof point.location_description != 'undefined' && point.location_description !== null ) { parcelMachineAddressDesc = point.location_description; } if ( typeof point.address.line1 != 'undefined' && point.address.line1 !== null ) { address_line1 = point.address.line1; } if ( typeof point.address.line2 != 'undefined' && point.address.line2 !== null ) { address_line2 = point.address.line2; } if ( point.location_description ) { selected_point_data = '
\n' + '
' + point_name + '
\n' + '' + address_line1 + '
' + address_line2 + '

' + '(' + point.location_description + ')' + '\n' + '
\n'; } else { selected_point_data = '
\n' + '
' + point_name + '
\n' + '' + point.address.line1 + '
' + address_line2 + '

' '\n' + '
'; } jQuery( '#easypack_selected_point_data' ).each( function (ind, elem) { jQuery( elem ).remove(); } ); jQuery( '.inpost_pl_additional_validation_field' ).each( function (ind, elem) { jQuery( elem ).remove(); } ); jQuery( '#easypack_js_type_geowidget' ).after( selected_point_data ); jQuery( "#easypack_js_type_geowidget" ).text( easypack_front_map.button_text2 ); let point_address = address_line1 + '
' + address_line2; let is_need_write_missed_locker = false; let typ_page = jQuery( '#selected-parcel-locker-pl-id' ); if ( typeof typ_page != 'undefined' && typ_page !== null ) { if ( typ_page.length > 0 ) { is_need_write_missed_locker = true; jQuery( typ_page ).html( point_name ); let typ_page_desc = jQuery( '#selected-parcel-machine-desc' ); if (typeof typ_page_desc != 'undefined' && typ_page_desc !== null) { jQuery( typ_page_desc ).html( selected_point_data ); } jQuery( '.hidden-inpost-pl-typ-data' ).css( 'display', 'block' ); } } let EasyPackPointObject = { 'pointName': point_name, 'pointDesc': parcelMachineAddressDesc, 'visiblePointData': point_address }; localStorage.setItem( 'EasyPackPointObject', JSON.stringify( EasyPackPointObject ) ); // for some templates like Divi - add hidden fields for Inpost Parcel locker dynamically. var form = document.getElementsByClassName( 'checkout woocommerce-checkout' )[0]; var additionalInput1 = document.createElement( 'input' ); additionalInput1.type = 'hidden'; additionalInput1.name = 'parcel_machine_id'; additionalInput1.value = point_name; additionalInput1.classList.add( 'inpost_pl_additional_validation_field' ); var additionalInput2 = document.createElement( 'input' ); additionalInput2.type = 'hidden'; additionalInput2.name = 'parcel_machine_desc'; additionalInput2.value = parcelMachineAddressDesc; additionalInput2.classList.add( 'inpost_pl_additional_validation_field' ); if (form) { form.appendChild( additionalInput1 ); form.appendChild( additionalInput2 ); } inpostjsGeowidgetModal.close(); if ( is_need_write_missed_locker ) { let preloader_gif = easypack_front_map.preloader; let preloader = 'inpost-pl-typ-preloader'; let data = { action: 'update_locker_from_typ_page', order_id: jQuery( '#inpost-pl-typ-map-data' ).attr( 'data-id' ), inpost_pl_locker: point_name, inpost_pl_locker_desc: parcelMachineAddressDesc, security: easypack_front_map.security }; jQuery.ajax( { type: 'POST', url: easypack_front_map.ajaxurl, data: data, dataType: 'json', beforeSend: function () { inpost_pl_is_ajax_get_point_running = true; jQuery( '.inpost_pl_geowidget_related_preloader' ).css( 'display', 'flex' ); jQuery( '.inpost_pl_locker_changed' ).each( function (ind, elem) { jQuery( elem ).remove(); } ); jQuery( '.inpost-pl-related-point-btn' ).each( function (ind, elem) { jQuery( elem ).css( 'background', '#fff' ); } ); }, success: function (data, textStatus, jqXHR) { console.log( 'inpost_pl_update_locker_from_map result:' ); console.log( data ); if ( 'success' in data ) { if ( data.success ) { jQuery( '#inpost-pl-typ-map-data' ).before( '
' + easypack_front_map.updated_text + ': ' + point_name + '
' ); } else { jQuery( '#inpost-pl-typ-map-data' ).before( '
' + easypack_front_map.error_text + '
' ); } } else { jQuery( '#inpost-pl-typ-map-data' ).before( '
' + easypack_front_map.error_text + '
' ); } }, error: function (jqXHR, textStatus, errorThrown) { console.log( 'inpost_pl_update_locker_from_map_error' ); console.log( 'error: ' + jqXHR.status ); jQuery( '#inpost-pl-typ-map-data' ).before( '
' + easypack_front_map.error_text + '
' ); return false; }, complete: function () { console.log( 'Complete' ); inpost_pl_is_ajax_get_point_running = false; jQuery( '.inpost-pl-typ-preloader' ).each( function (ind, elem) { jQuery( elem ).remove(); } ); jQuery( '.inpost_pl_geowidget_related_preloader' ).each( function (ind, elem) { jQuery( elem ).css( 'display', 'none' ); } ); } } ); } } function inpost_pl_js_set_locker_from_local_storage() { let EasyPackPointObject = localStorage.getItem( 'EasyPackPointObject' ); if (EasyPackPointObject !== null) { let selected_point_data = ''; let point, visible_desc, desc; let pointData = JSON.parse( EasyPackPointObject ); if (typeof pointData != 'undefined' && pointData !== null) { if (typeof pointData.pointName != 'undefined' && pointData.pointName !== null) { point = pointData.pointName; } if (typeof pointData.visiblePointData != 'undefined' && pointData.visiblePointData !== null) { visible_desc = pointData.visiblePointData; } if (typeof pointData.pointDesc != 'undefined' && pointData.pointDesc !== null && typeof pointData.visiblePointData != 'undefined' && pointData.visiblePointData !== null) { desc = pointData.pointDesc; selected_point_data = '
\n' + '
' + point + '
\n' + '(' + visible_desc + ')' + '\n' + '
\n'; } else { selected_point_data = '
\n' + '
' + point + '
\n' '\n' + '
'; } jQuery( '#easypack_js_type_geowidget' ).after( selected_point_data ); jQuery( "#easypack_js_type_geowidget" ).text( easypack_front_map.button_text2 ); } } } jQuery( document ).ready( function () { console.log( "Inpost PL: front_js" ); // Prepare modal with map. let token = easypack_front_map.geowidget_v5_token; let shipping_data = inpost_pl_get_shipping_method_js_mode(); let method = shipping_data.method; let postfix = shipping_data.postfix; let config = 'parcelCollect'; if (typeof method != 'undefined' && method !== null) { config = inpost_pl_js_get_map_config_based_on_instance_id( postfix, method ); } var wH = jQuery( window ).height() - 80; inpostjsGeowidgetModal = new jBox( 'Modal', { width: 800, height: wH, attach: '#easypack_show_geowidget_modal', title: 'Wybierz paczkomat', content: '' } ); if ( typeof method != 'undefined' && method !== null ) { console.log( 'Inpost PL: ready' ); console.log( method ); let config = 'parcelCollect'; config = inpost_pl_js_get_map_config_based_on_instance_id( postfix, method ); let wH = jQuery( window ).height() - 80; let map_content = ''; inpostjsGeowidgetModal.setContent( map_content ); let selector = method + ':' + postfix; let shipping_option_input = null; let li_parent = null; console.log( "Inpost PL: shipping option input value" ); console.log( selector ); let shipping_options_block = jQuery( '#shipping_method' ); if ( typeof shipping_options_block != 'undefined' && shipping_options_block !== null ) { jQuery( shipping_options_block ).find( 'input' ).each( function (index, input) { if ( selector === jQuery( input ).val() ) { shipping_option_input = input; console.log( "Inpost PL: shipping option input" ); console.log( shipping_option_input ); } } ); } let map_button = '
\n' + easypack_front_map.button_text1 + '
'; if ( shipping_option_input ) { li_parent = jQuery( shipping_option_input ).closest( 'li' ); console.log( "Inpost PL: li_parent" ); console.log( li_parent ); } if ( method.indexOf( 'easypack_parcel_machines' ) !== -1 ) { if ( typeof li_parent != 'undefined' && li_parent !== null ) { jQuery( li_parent ).after( map_button ); console.log( "Inpost PL: add map button" ); inpost_pl_js_set_locker_from_local_storage(); } } else { let inpost_methods = inpost_pl_js_get_configured_inpost_methods(); let linked_fs_method_data = inpost_methods[postfix]; if ( typeof linked_fs_method_data != 'undefined' && linked_fs_method_data !== null ) { let linked_fs_method = linked_fs_method_data.inpost_title; if ( linked_fs_method.indexOf( 'easypack_parcel_machines' ) !== -1 ) { if (typeof li_parent != 'undefined' && li_parent !== null) { jQuery( li_parent ).after( map_button ); inpost_pl_js_set_locker_from_local_storage(); } } } } jQuery( '#easypack_js_type_geowidget' ).on( 'click', function () { if ( typeof inpostjsGeowidgetModal != 'undefined' && inpostjsGeowidgetModal !== null ) { if ( ! inpostjsGeowidgetModal.isOpen) { console.log( 'inpost geowidget open jQuery' ); inpostjsGeowidgetModal.open(); } } } ); // open modal with map. document.addEventListener( 'click', function (e) { e = e || window.event; var target = e.target || e.srcElement; if (target.hasAttribute( 'id' ) && target.getAttribute( 'id' ) === 'easypack_js_type_geowidget') { e.preventDefault(); if ( typeof inpostjsGeowidgetModal != 'undefined' && inpostjsGeowidgetModal !== null ) { if ( ! inpostjsGeowidgetModal.isOpen ) { inpostjsGeowidgetModal.open(); } } } } ); } jQuery( document.body ).on( 'update_checkout', function () { jQuery( '.easypack_show_geowidget' ).each( function (ind, elem) { jQuery( elem ).remove(); } ); jQuery( '.easypack_selected_point_data' ).each( function (ind, elem) { jQuery( elem ).remove(); } ); if ( typeof method != 'undefined' && method !== null ) { console.log( 'Inpost PL: ready' ); console.log( method ); let config = 'parcelCollect'; config = inpost_pl_js_get_map_config_based_on_instance_id( postfix, method ); let wH = jQuery( window ).height() - 80; let map_content = ''; inpostjsGeowidgetModal.setContent( map_content ); let selector = method + ':' + postfix; let shipping_option_input = null; let li_parent = null; console.log( "Inpost PL: shipping option input value" ); console.log( selector ); let shipping_options_block = jQuery( '#shipping_method' ); if ( typeof shipping_options_block != 'undefined' && shipping_options_block !== null ) { jQuery( shipping_options_block ).find( 'input' ).each( function (index, input) { if ( selector === jQuery( input ).val() ) { shipping_option_input = input; console.log( "Inpost PL: shipping option input" ); console.log( shipping_option_input ); } } ); } let map_button = '
\n' + easypack_front_map.button_text1 + '
'; if ( shipping_option_input ) { li_parent = jQuery( shipping_option_input ).closest( 'li' ); console.log( "Inpost PL: li_parent" ); console.log( li_parent ); } if ( method.indexOf( 'easypack_parcel_machines' ) !== -1 ) { if ( typeof li_parent != 'undefined' && li_parent !== null ) { jQuery( li_parent ).after( map_button ); inpost_pl_js_set_locker_from_local_storage(); console.log( "Inpost PL: add map button" ); } } else { let inpost_methods = inpost_pl_js_get_configured_inpost_methods(); let linked_fs_method_data = inpost_methods[postfix]; if ( typeof linked_fs_method_data != 'undefined' && linked_fs_method_data !== null ) { let linked_fs_method = linked_fs_method_data.inpost_title; if ( linked_fs_method.indexOf( 'easypack_parcel_machines' ) !== -1 ) { if (typeof li_parent != 'undefined' && li_parent !== null) { jQuery( li_parent ).after( map_button ); inpost_pl_js_set_locker_from_local_storage(); } } } } jQuery( '#easypack_js_type_geowidget' ).on( 'click', function () { if ( typeof inpostjsGeowidgetModal != 'undefined' && inpostjsGeowidgetModal !== null ) { if ( ! inpostjsGeowidgetModal.isOpen) { console.log( 'inpost geowidget open jQuery' ); inpostjsGeowidgetModal.open(); } } } ); // open modal with map. document.addEventListener( 'click', function (e) { e = e || window.event; var target = e.target || e.srcElement; if (target.hasAttribute( 'id' ) && target.getAttribute( 'id' ) === 'easypack_js_type_geowidget') { e.preventDefault(); if ( typeof inpostjsGeowidgetModal != 'undefined' && inpostjsGeowidgetModal !== null ) { if ( ! inpostjsGeowidgetModal.isOpen ) { inpostjsGeowidgetModal.open(); } } } } ); } } ); jQuery( document.body ).on( 'updated_checkout', function () { let shipping_data = inpost_pl_get_shipping_method_js_mode(); let method = shipping_data.method; let postfix = shipping_data.postfix; jQuery( '.easypack_show_geowidget' ).each( function (ind, elem) { jQuery( elem ).remove(); } ); jQuery( '.easypack_selected_point_data' ).each( function (ind, elem) { jQuery( elem ).remove(); } ); if ( typeof method != 'undefined' && method !== null ) { let config = 'parcelCollect'; config = inpost_pl_js_get_map_config_based_on_instance_id( postfix, method ); let wH = jQuery( window ).height() - 80; let map_content = ''; inpostjsGeowidgetModal.setContent( map_content ); let selector = method + ':' + postfix; let shipping_option_input = null; let li_parent = null; console.log( "shipping option input value" ); console.log( selector ); let shipping_options_block = jQuery( '#shipping_method' ); if ( typeof shipping_options_block != 'undefined' && shipping_options_block !== null ) { jQuery( shipping_options_block ).find( 'input' ).each( function (index, input) { if ( selector === jQuery( input ).val() ) { shipping_option_input = input; } } ); } let map_button = '
\n' + easypack_front_map.button_text1 + '
'; if ( shipping_option_input ) { li_parent = jQuery( shipping_option_input ).closest( 'li' ); } if ( method.indexOf( 'easypack_parcel_machines' ) !== -1 ) { if ( typeof li_parent != 'undefined' && li_parent !== null ) { jQuery( li_parent ).after( map_button ); inpost_pl_js_set_locker_from_local_storage(); } } else { let inpost_methods = inpost_pl_js_get_configured_inpost_methods(); let linked_fs_method_data = inpost_methods[postfix]; if ( typeof linked_fs_method_data != 'undefined' && linked_fs_method_data !== null ) { let linked_fs_method = linked_fs_method_data.inpost_title; if ( linked_fs_method.indexOf( 'easypack_parcel_machines' ) !== -1 ) { if (typeof li_parent != 'undefined' && li_parent !== null) { jQuery( li_parent ).after( map_button ); inpost_pl_js_set_locker_from_local_storage(); } } } } jQuery( '#easypack_js_type_geowidget' ).on( 'click', function () { if ( typeof inpostjsGeowidgetModal != 'undefined' && inpostjsGeowidgetModal !== null ) { if ( ! inpostjsGeowidgetModal.isOpen) { console.log( 'inpost geowidget open jQuery' ); inpostjsGeowidgetModal.open(); } } } ); // open modal with map. document.addEventListener( 'click', function (e) { e = e || window.event; var target = e.target || e.srcElement; if (target.hasAttribute( 'id' ) ) { if (target.getAttribute( 'id' ) === 'easypack_js_type_geowidget') { e.preventDefault(); if (typeof inpostjsGeowidgetModal != 'undefined' && inpostjsGeowidgetModal !== null) { if ( ! inpostjsGeowidgetModal.isOpen) { inpostjsGeowidgetModal.open(); } } } } } ); } } ); document.addEventListener( 'change', function (e) { e = e || window.event; var target = e.target; if (target.hasAttribute( 'name' )) { if (target.getAttribute( 'name' ) === 'shipping_method[0]') { localStorage.setItem( 'EasyPackPointObject', null ); console.log( 'reset local storage value' ); } } } ); jQuery( document ).ready( function () { jQuery( '.inpost_pl_geowidget_typ' ).on( 'click', function () { if ( typeof inpostjsGeowidgetModal != 'undefined' && inpostjsGeowidgetModal !== null ) { if ( ! inpostjsGeowidgetModal.isOpen) { console.log( 'inpost_pl_geowidget_typ open jQuery' ); inpostjsGeowidgetModal.open(); } } } ); document.addEventListener( 'click', function (e) { e = e || window.event; var target = e.target || e.srcElement; if ( target.classList.contains( 'inpost_pl_geowidget_typ' ) ) { e.preventDefault(); console.log( 'JS btn click' ); if (typeof inpostjsGeowidgetModal != 'undefined' && inpostjsGeowidgetModal !== null) { if ( ! inpostjsGeowidgetModal.isOpen) { inpostjsGeowidgetModal.open(); } } } } ); jQuery( '.inpost-pl-related-point-btn' ).click( function (e) { e.preventDefault(); console.log( 'inpost-pl-related-point-btn' ); let this_btn = jQuery( this ); if ( inpost_pl_is_ajax_get_point_running ) { console.log( 'AJAX already is running' ); return false; } jQuery( '.inpost-pl-related-point-btn' ).each( function (ind, elem) { jQuery( elem ).css( 'background', '#fff' ); } ); let nearest_point_selected = jQuery( this_btn ).attr( 'data-id' ); let data = { action: 'update_locker_from_typ_page', order_id: jQuery( '#inpost-pl-related-data-order' ).val(), inpost_pl_locker: nearest_point_selected, inpost_pl_locker_desc: jQuery( this_btn ).attr( 'data-address-id' ), security: easypack_front_map.security }; jQuery.ajax( { type: 'POST', url: easypack_front_map.ajaxurl, data: data, dataType: 'json', beforeSend: function () { inpost_pl_is_ajax_get_point_running = true; jQuery( '.hidden-inpost-pl-typ-data' ).css( 'display', 'none' ); jQuery( this_btn ).find( '.inpost-pl-select-from-points-preloader' ).css( 'display', 'block' ); jQuery( '.inpost_pl_locker_changed' ).each( function (ind, elem) { jQuery( elem ).remove(); } ); }, success: function (data, textStatus, jqXHR) { console.log( 'inpost_pl_choose_locker_from_nearest result:' ); console.log( data ); if ( 'success' in data ) { if ( data.success ) { jQuery( this_btn ).css( 'background', '#afeaad' ); jQuery( this_btn ).find( '.inpost-pl-related-locker-info' ).after( '
' + easypack_front_map.updated_text + ': ' + nearest_point_selected + '
' ); jQuery( '#inpost-pl-typ-map-data' ).before( '
' + easypack_front_map.updated_text + ': ' + nearest_point_selected + '
' ); } else { jQuery( '#inpost-pl-typ-map-data' ).before( '
' + easypack_front_map.error_text + '
' ); } } else { jQuery( '#inpost-pl-typ-map-data' ).before( '
' + easypack_front_map.error_text + '
' ); } }, error: function (jqXHR, textStatus, errorThrown) { console.log( 'inpost_pl_choose_locker_from_nearest_error' ); console.log( 'error: ' + jqXHR.status ); jQuery( '#inpost-pl-typ-map-data' ).before( '
' + easypack_front_map.error_text + '
' ); return false; }, complete: function () { console.log( 'Complete' ); inpost_pl_is_ajax_get_point_running = false; jQuery( this_btn ).find( '.inpost-pl-select-from-points-preloader' ).css( 'display', 'none' ); } } ); } ); } ); } ); function inpost_pl_js_get_map_config_based_on_instance_id(instance_id, method) { let map_config = 'parcelCollect'; let inpost_methods = inpost_pl_js_get_configured_inpost_methods(); if (instance_id !== undefined && instance_id !== null && instance_id !== '') { let selected_method = inpost_methods[instance_id]; if (typeof selected_method != 'undefined' && selected_method !== null) { let method_id = selected_method.inpost_title; if (method_id === 'easypack_parcel_machines_cod') { map_config = 'parcelCollectPayment'; } if (method_id === 'easypack_shipping_courier_c2c') { map_config = 'parcelSend'; } if (method_id === 'easypack_parcel_machines_weekend' || method_id === 'easypack_parcel_machines_weekend_cod') { map_config = 'parcelCollect247'; } } } else { if (method === 'easypack_parcel_machines_cod') { map_config = 'parcelCollectPayment'; } if (method === 'easypack_shipping_courier_c2c') { map_config = 'parcelSend'; } if (method === 'easypack_parcel_machines_weekend' || method === 'easypack_parcel_machines_weekend_cod') { map_config = 'parcelCollect247'; } } return map_config; } function inpost_pl_js_get_configured_inpost_methods() { if (typeof window.easypack_front_map != 'undefined' && window.easypack_front_map !== null) { if ( window.easypack_front_map.inpost_methods ) { return window.easypack_front_map.inpost_methods; } } return []; }