Plugin Directory

Changeset 3206929


Ignore:
Timestamp:
12/12/2024 11:50:35 AM (16 months ago)
Author:
triopsi
Message:

New Release

Location:
extra-product-data-for-woocommerce
Files:
8 added
4 deleted
18 edited
37 copied

Legend:

Unmodified
Added
Removed
  • extra-product-data-for-woocommerce/tags/1.7.0/CHANGELOG.md

    r3204699 r3206929  
     1# [1.6.0](https://git.triopsi.dev/triopsi/extra-product-data-for-woocommerce/compare/v1.5.1...v1.6.0) (2024-12-09)
     2
     3
     4### Features
     5
     6* add setting page and add options for "Show on Cart" and "Show on Checkout" ([80a68f2](https://git.triopsi.dev/triopsi/extra-product-data-for-woocommerce/commit/80a68f2ee47a7a04c179f819bb64474f3beec4a4))
     7
     8## [1.5.1](https://git.triopsi.dev/triopsi/extra-product-data-for-woocommerce/compare/v1.5.0...v1.5.1) (2024-12-09)
     9
     10
     11### Bug Fixes
     12
     13* edit button dont visible on order overview ([3276eb3](https://git.triopsi.dev/triopsi/extra-product-data-for-woocommerce/commit/3276eb306b338cb307f95b97b71433b350926efd))
     14
    115# [1.5.0](https://git.triopsi.dev/triopsi/extra-product-data-for-woocommerce/compare/v1.4.1...v1.5.0) (2024-12-09)
    216
  • extra-product-data-for-woocommerce/tags/1.7.0/assets/css/admin-backend.css

    r3203398 r3206929  
    1 #extra-product-data{padding:10px}table.exprdawc_attribute_table td{vertical-align:middle!important}table.exprdawc_attribute_table td.exprdawc_attribute_require_checkbox label{padding-top:15px}table.exprdawc_field_table{border-collapse:collapse;width:100%}table.exprdawc_field_table tr:nth-child(2n){background-color:#f9f9f9}table.exprdawc_field_table tr.exprdawc_fields_wrapper{border-bottom:1px solid #ddd}table.exprdawc_field_table tr.exprdawc_fields_wrapper:hover{background-color:#f1f1f1}table.exprdawc_field_table tr.exprdawc_fields_wrapper:last-child{border-bottom:none}table.exprdawc_field_table td{padding:0}table.exprdawc_field_table tfoot tr{background-color:#f5f5f5;border:1px solid #ccc}table.exprdawc_field_table tfoot td{padding:10px;text-align:center;vertical-align:middle}table.exprdawc_field_table tfoot .button{line-height:13px;padding:5px}table.exprdawc_fields_table{border-collapse:collapse;width:100%}table.exprdawc_fields_table tr{border:0}table.exprdawc_fields_table tbody td{padding:10px;vertical-align:middle}table.exprdawc_fields_table tbody td input[type=number],table.exprdawc_fields_table tbody td input[type=text],table.exprdawc_fields_table tbody td select,table.exprdawc_fields_table tbody td textarea{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;padding:5px;width:100%}table.exprdawc_fields_table tbody td select{text-overflow:ellipsis}table.exprdawc_fields_table tbody td button.add_rule,table.exprdawc_fields_table tbody td button.exprdawc_remove_custom_field,table.exprdawc_fields_table tbody td button.remove_rule{line-height:13px;padding:5px}table.exprdawc_fields_table tbody td.move i{cursor:move}table.exprdawc_fields_table tbody td.cl-arr i{cursor:pointer}table.exprdawc_settings_table{width:100%}table.exprdawc_settings_table label.exprdawc_label{align-items:center;display:flex;float:none;margin:5px 0;padding:0;text-align:left;width:auto}table.exprdawc_settings_table label.exprdawc_label .checkbox{margin-right:5px!important}table.exprdawc_settings_table td{padding:10px;vertical-align:middle}table.exprdawc_options_table{border:1px solid #ccc;border-collapse:collapse;margin-top:10px;width:100%}table.exprdawc_options_table td,table.exprdawc_options_table th{border-bottom:1px solid #ddd;padding:10px;text-align:left}table.exprdawc_options_table th{background-color:#f1f1f1}table.exprdawc_options_table tr:hover{background-color:#f9f9f9}table.exprdawc_options_table .button{background-color:#0073aa;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:5px 10px}table.exprdawc_options_table .button:hover{background-color:#005a87;color:#fff}.exprdawc_attribute h3 .sort{cursor:move;float:right;font-size:15px;font-weight:400;height:26px;margin-right:.5em;text-align:center;vertical-align:middle;width:17px}.exprdawc_attribute h3 .sort:before{color:#999;content:"\f333";display:block;float:left;font-family:Dashicons;height:100%;line-height:28px;text-align:center;width:17px}.exprdawc_attribute h3 .sort:hover:before{color:#777}.exprdawc_attribute h3:hover .sort,.exprdawc_attribute.ui-sortable-helper .sort{visibility:visible}.exprdawc_attribute.wc-metabox.postbox{border-left:0;border-right:0;border-top:0}.exprdawc_panel{display:block}.exprdawc_panel h2{font-size:1.2em!important;padding:0 0 10px!important}.exprdawc_panel .wc-metabox{background:#fff;border-bottom:1px solid #eee;margin:0!important}.exprdawc_panel .wc-metabox.exprdawc_attribute h3{cursor:pointer;padding:.5em .75em .5em 1em!important}.exprdawc_panel .wc-metabox.exprdawc_attribute h3 .sort,.exprdawc_panel .wc-metabox.exprdawc_attribute h3 a.delete,.exprdawc_panel .wc-metabox.exprdawc_attribute h3 a.edit{margin-top:.25em}#woocommerce-coupon-data ul.wc-tabs li.custom_fields_options a:before,#woocommerce-product-data ul.wc-tabs li.custom_fields_options a:before,.woocommerce ul.wc-tabs li.custom_fields_options a:before{content:"\f163";font-family:Dashicons}.exprdawc_conditional_logic_table{border-collapse:collapse;margin-bottom:20px;width:100%}.exprdawc_conditional_logic_table td,.exprdawc_conditional_logic_table th{border:1px solid #ddd;padding:10px;text-align:left}.exprdawc_conditional_logic_table th{background-color:#f9f9f9;font-weight:700}.exprdawc_conditional_logic_table .exprdawc_label{display:block;font-weight:700;margin-bottom:5px}.exprdawc_conditional_logic_table .exprdawc_input{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;padding:5px;width:100%}.exprdawc_conditional_logic_table .exprdawc_checkbox{width:auto}.exprdawc_conditional_logic_table .exprdawc_textarea{border:1px solid #ccc;border-radius:4px;padding:8px;width:100%}.exprdawc_conditional_logic_table .exprdawc_no_entry_message{color:#a00;font-weight:700}.exprdawc_conditional_logic_table h2{text-align:left;text-transform:uppercase}.exprdawc_conditional_logic_table .exprdawc_rule_group{background-color:#f9f9f9;border:1px solid #ddd;border-radius:4px;margin-bottom:10px;padding:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .exprdawc_rule{align-items:center;display:flex;margin-bottom:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .exprdawc_rule .exprdawc_input{margin-right:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .exprdawc_rule .button{margin-left:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .add_rule_group{margin-top:10px}.exprdawc_no_entry_message{display:block;margin:10px 0 0;padding-bottom:1em;padding-top:75px;position:relative;text-align:center}.exprdawc_no_entry_message:before{color:#eee;content:"\f163";font-family:Dashicons;font-size:70px;left:50%;position:absolute;top:0;transform:translateX(-50%)}p.exprdawc_toolbar{align-items:center;background-color:#f5f5f5;border:1px solid #ccc;display:flex;justify-content:center;text-align:center}a.exprdawc-export,a.exprdawc-import{color:#0073aa;font-size:small;margin:0 5px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}a.exprdawc-export:before,a.exprdawc-import:before{font-family:Dashicons;margin-right:5px;position:relative}a.exprdawc-export:hover,a.exprdawc-import:hover{color:#005a87;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}a.exprdawc-export:before{content:"\f346"}a.exprdawc-import:before{content:"\f342"}
     1#extra-product-data{padding:10px}table.exprdawc_attribute_table td{vertical-align:middle!important}table.exprdawc_attribute_table td.exprdawc_attribute_require_checkbox label{padding-top:15px}table.exprdawc_field_table{border-collapse:collapse;width:100%}table.exprdawc_field_table tr:nth-child(2n){background-color:#f9f9f9}table.exprdawc_field_table tr.exprdawc_fields_wrapper{border-bottom:1px solid #ddd}table.exprdawc_field_table tr.exprdawc_fields_wrapper:hover{background-color:#f1f1f1}table.exprdawc_field_table tr.exprdawc_fields_wrapper:last-child{border-bottom:none}table.exprdawc_field_table td{padding:0}table.exprdawc_field_table tfoot tr{background-color:#f5f5f5;border:1px solid #ccc}table.exprdawc_field_table tfoot td{padding:10px;text-align:center;vertical-align:middle}table.exprdawc_field_table tfoot .button{line-height:13px;padding:5px}table.exprdawc_fields_table{border-collapse:collapse;width:100%}table.exprdawc_fields_table tr{border:0}table.exprdawc_fields_table tbody td{padding:10px;vertical-align:middle}table.exprdawc_fields_table tbody td input[type=number],table.exprdawc_fields_table tbody td input[type=text],table.exprdawc_fields_table tbody td select,table.exprdawc_fields_table tbody td textarea{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;padding:5px;width:100%}table.exprdawc_fields_table tbody td select{text-overflow:ellipsis}table.exprdawc_fields_table tbody td button.add_rule,table.exprdawc_fields_table tbody td button.exprdawc_remove_custom_field,table.exprdawc_fields_table tbody td button.remove_rule{line-height:13px;padding:5px}table.exprdawc_fields_table tbody td.move i{cursor:move}table.exprdawc_fields_table tbody td.cl-arr i{cursor:pointer}table.exprdawc_settings_table{width:100%}table.exprdawc_settings_table label.exprdawc_label{align-items:center;display:flex;float:none;margin:5px 0;padding:0;text-align:left;width:auto}table.exprdawc_settings_table label.exprdawc_label .checkbox{margin-right:5px!important}table.exprdawc_settings_table td{padding:10px;vertical-align:middle}table.exprdawc_options_table{border:1px solid #ccc;border-collapse:collapse;margin-top:10px;width:100%}table.exprdawc_options_table td,table.exprdawc_options_table th{border-bottom:1px solid #ddd;padding:10px;text-align:left}table.exprdawc_options_table th{background-color:#f1f1f1}table.exprdawc_options_table tr:hover{background-color:#f9f9f9}table.exprdawc_options_table .button{background-color:#0073aa;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:5px 10px}table.exprdawc_options_table .button:hover{background-color:#005a87;color:#fff}.exprdawc_attribute h3 .sort{cursor:move;float:right;font-size:15px;font-weight:400;height:26px;margin-right:.5em;text-align:center;vertical-align:middle;width:17px}.exprdawc_attribute h3 .sort:before{color:#999;content:"";display:block;float:left;font-family:Dashicons;height:100%;line-height:28px;text-align:center;width:17px}.exprdawc_attribute h3 .sort:hover:before{color:#777}.exprdawc_attribute h3:hover .sort,.exprdawc_attribute.ui-sortable-helper .sort{visibility:visible}.exprdawc_attribute.wc-metabox.postbox{border-left:0;border-right:0;border-top:0}.exprdawc_panel{display:block}.exprdawc_panel h2{font-size:1.2em!important;padding:0 0 10px!important}.exprdawc_panel .wc-metabox{background:#fff;border-bottom:1px solid #eee;margin:0!important}.exprdawc_panel .wc-metabox.exprdawc_attribute h3{cursor:pointer;padding:.5em .75em .5em 1em!important}.exprdawc_panel .wc-metabox.exprdawc_attribute h3 .sort,.exprdawc_panel .wc-metabox.exprdawc_attribute h3 a.delete,.exprdawc_panel .wc-metabox.exprdawc_attribute h3 a.edit{margin-top:.25em}#woocommerce-coupon-data ul.wc-tabs li.custom_fields_options a:before,#woocommerce-product-data ul.wc-tabs li.custom_fields_options a:before,.woocommerce ul.wc-tabs li.custom_fields_options a:before{content:"";font-family:Dashicons}.exprdawc_conditional_logic_table{border-collapse:collapse;margin-bottom:20px;width:100%}.exprdawc_conditional_logic_table td,.exprdawc_conditional_logic_table th{border:1px solid #ddd;padding:10px;text-align:left}.exprdawc_conditional_logic_table th{background-color:#f9f9f9;font-weight:700}.exprdawc_conditional_logic_table .exprdawc_label{display:block;font-weight:700;margin-bottom:5px}.exprdawc_conditional_logic_table .exprdawc_input{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;padding:5px;width:100%}.exprdawc_conditional_logic_table .exprdawc_checkbox{width:auto}.exprdawc_conditional_logic_table .exprdawc_textarea{border:1px solid #ccc;border-radius:4px;padding:8px;width:100%}.exprdawc_conditional_logic_table .exprdawc_no_entry_message{color:#a00;font-weight:700}.exprdawc_conditional_logic_table h2{text-align:left;text-transform:uppercase}.exprdawc_conditional_logic_table .exprdawc_rule_group{background-color:#f9f9f9;border:1px solid #ddd;border-radius:4px;margin-bottom:10px;padding:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .exprdawc_rule{align-items:center;display:flex;margin-bottom:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .exprdawc_rule .exprdawc_input{margin-right:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .exprdawc_rule .button{margin-left:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .add_rule_group{margin-top:10px}.exprdawc_no_entry_message{display:block;margin:10px 0 0;padding-bottom:1em;padding-top:75px;position:relative;text-align:center}.exprdawc_no_entry_message:before{color:#eee;content:"";font-family:Dashicons;font-size:70px;left:50%;position:absolute;top:0;transform:translateX(-50%)}p.exprdawc_toolbar{align-items:center;background-color:#f5f5f5;border:1px solid #ccc;display:flex;justify-content:center;text-align:center}a.exprdawc-export,a.exprdawc-import{color:#0073aa;font-size:small;margin:0 5px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}a.exprdawc-export:before,a.exprdawc-import:before{font-family:Dashicons;margin-right:5px;position:relative}a.exprdawc-export:hover,a.exprdawc-import:hover{color:#005a87;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}a.exprdawc-export:before{content:""}a.exprdawc-import:before{content:""}
  • extra-product-data-for-woocommerce/tags/1.7.0/assets/js/wc-meta-boxes-product.js

    r3203398 r3206929  
    11/*! For license information please see wc-meta-boxes-product.js.LICENSE.txt */
    2 (()=>{var e,t={976:()=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){for(var a=0;a<t.length;a++){var o=t[a];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,n(o.key),o)}}function n(t){var n=function(t,n){if("object"!=e(t)||!t)return t;var a=t[Symbol.toPrimitive];if(void 0!==a){var o=a.call(t,n||"default");if("object"!=e(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(t)}(t,"string");return"symbol"==e(n)?n:n+""}jQuery((function(e){new(function(){return n=function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.fieldIndex=e("#exprdawc_field_body tr.exprdawc_attribute").length,this.isDirty=!1,this.init()},a=[{key:"init",value:function(){this.bindEvents(),this.noEntryContent()}},{key:"bindEvents",value:function(){e("#exprdawc_add_custom_field").on("click",this.addCustomField.bind(this)),e(document).on("click",".exprdawc_remove_custom_field",this.removeCustomField.bind(this)),e(document).on("change",".exprdawc_attribute_type",this.toggleOptions.bind(this)),e(document).on("click",".toggle-options",this.toggleOptionsTable.bind(this)),e(document).on("click",".add_option",this.addOption.bind(this)),e(document).on("click",".remove_option",this.removeOption.bind(this)),e(document).on("click","a.exprdawc-export",this.exportContent.bind(this)),e(document).on("click","a.exprdawc-import",this.importContent.bind(this)),e(document).on("change",".exprdawc_input",this.setDirty.bind(this)),e(document).on("change",".exprdawc_autocomplete_field",this.checkAutocompleteField.bind(this)),e(document).on("click",".add_rule_group",this.addRuleGroup.bind(this)),e(document).on("click",".add_rule",this.addRule.bind(this)),e(document).on("click",".remove_rule",this.removeRule.bind(this)),e(document).on("change",".exprdawc_conditional_operator",this.toggleConditionalValueField.bind(this)),e(document).on("change",".exprdawc_conditional_logic_field",this.toggleConditionalTable.bind(this)),this.toggleConditionalValueFieldAll(),e(".exprdawc_field_table tbody").sortable({items:"tr.exprdawc_fields_wrapper",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")}}),e(document).on("mouseenter",".exprdawc_options_table tbody",(function(){e(this).sortable({items:"tr",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")}})})),e("#exprdawc_attribute_container").on("input",".exprdawc_attribute .exprdawc_attribute_input_name input",(function(){var t=e(this).val(),n=e(this).closest(".exprdawc_attribute").find(".attribute_name");t&&n.text(t)}))}},{key:"addCustomField",value:function(){this.fieldIndex++,this.setDirty(),e("#exprdawc_field_body").append('\n                <tr class="exprdawc_fields_wrapper">\n                <td colspan="5">\n                <table class="exprdawc_fields_table" data-index="'.concat(this.fieldIndex,'">\n\t                <tbody>\n                        <tr class="exprdawc_attribute">\n                            <td class="move"><i class="dashicons dashicons-move"></i></td>\n                            <td class="cl-arr"><i class="dashicons dashicons-arrow-up toggle-options"></i></td>\n                            <td class="exprdawc_attribute_input_name">\n                                <input type="text" name="extra_product_fields[').concat(this.fieldIndex,'][label]" placeholder="').concat(exprdawc_admin_meta_boxes.label_placeholder,'" />\n                            </td>\n                            <td>\n                                <select id="exprdawc_attribute_type_').concat(this.fieldIndex,'" name="extra_product_fields[').concat(this.fieldIndex,'][type]" class="exprdawc_attribute_type">\n                                    <option value="text">').concat(exprdawc_admin_meta_boxes.short_text,'</option>\n                                    <option value="long_text">').concat(exprdawc_admin_meta_boxes.long_text,'</option>\n                                    <option value="email">').concat(exprdawc_admin_meta_boxes.email,'</option>\n                                    <option value="number">').concat(exprdawc_admin_meta_boxes.number,'</option>\n                                    <option value="date">').concat(exprdawc_admin_meta_boxes.date,'</option>\n                                    <option value="yes-no">').concat(exprdawc_admin_meta_boxes.yes_no,'</option>\n                                    <option value="radio">').concat(exprdawc_admin_meta_boxes.radio,'</option>\n                                    <option value="checkbox">').concat(exprdawc_admin_meta_boxes.checkbox,'</option>\n                                    <option value="select">').concat(exprdawc_admin_meta_boxes.select,'</option>\n                                </select>\n                            </td>\n                            <td>\n                                <button type="button" class="exprdawc_remove_custom_field button"><i class="dashicons dashicons-trash"></i></button>\n                                <input type="hidden" class="exprdawc_attribute_index" name="extra_product_fields[').concat(this.fieldIndex,'][index]" value="').concat(this.fieldIndex,'"/>\n                            </td>\n                        </tr>\n                        <tr class="exprdawc_options" style="display: none;">\n                            <td colspan="5">\n\n                                <table class="exprdawc_settings_table exprdawc_general_table">\n                                    <tbody>\n\n                                        \x3c!-- Text Area Option/Settings --\x3e\n                                        <tr>\n                                            <td class="exprdawc_attribute_require_checkbox">\n                                                <label class="exprdawc_label" for="exprdawc_text_required_').concat(this.fieldIndex,'">\n                                                    <input type="checkbox" id="exprdawc_text_required_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[').concat(this.fieldIndex,'][required]" value="1" />\n                                                    ').concat(exprdawc_admin_meta_boxes.require_input,'\n                                                </label>                                       \n                                                <label class="exprdawc_label" for="exprdawc_text_autofocus_').concat(this.fieldIndex,'">\n                                                    <input type="checkbox" id="exprdawc_text_autofocus_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[').concat(this.fieldIndex,'][autofocus]" value="1" />\n                                                    ').concat(exprdawc_admin_meta_boxes.enable_autofocus,'\n                                                </label>\n\n                                                \x3c!-- Enable Conditional Logic and show table --\x3e\n                                                <label class="exprdawc_label" for="exprdawc_text_conditional_logic_').concat(this.fieldIndex,'">\n                                                    <input type="checkbox" id="exprdawc_text_conditional_logic_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_checkbox exprdawc_conditional_logic_field checkbox" name="extra_product_fields[').concat(this.fieldIndex,'][conditional_logic]" value="1" />\n                                                    ').concat(exprdawc_admin_meta_boxes.enable_conditional_logic,'\n                                                </label>\n                                            </td>\n                                            <td class="exprdawc_attribute_placeholder_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_placeholder_text_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.placeholder_text,'</label>\n                                                <input type="text" id="exprdawc_text_placeholder_text_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_textinput exprdawc_placeholder" name="extra_product_fields[').concat(this.fieldIndex,'][placeholder_text]" placeholder="').concat(exprdawc_admin_meta_boxes.placeholder_text,'" />\n                                            </td>\n                                            <td class="exprdawc_attribute_help_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_help_text_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.help_text,'</label>\n                                                <input type="text" id="exprdawc_text_help_text_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_textinput exprdawc_helptext" name="extra_product_fields[').concat(this.fieldIndex,'][help_text]" placeholder="').concat(exprdawc_admin_meta_boxes.help_text,'" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_autocomplete_function_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.autocomplete_function,'</label>\n                                                <select id="exprdawc_autocomplete_function_').concat(this.fieldIndex,'" name="extra_product_fields[').concat(this.fieldIndex,'][autocomplete]" class="exprdawc_input exprdawc_attribute_type">\n                                                    <option value="on">').concat(exprdawc_admin_meta_boxes.autocomplete_on,'</option>\n                                                    <option value="off">').concat(exprdawc_admin_meta_boxes.autocomplete_off,'</option>\n                                                    <option value="address-level1">').concat(exprdawc_admin_meta_boxes.address_level1,'</option>\n                                                    <option value="address-level2">').concat(exprdawc_admin_meta_boxes.address_level2,'</option>\n                                                    <option value="address-level3">').concat(exprdawc_admin_meta_boxes.address_level3,'</option>\n                                                    <option value="address-level4">').concat(exprdawc_admin_meta_boxes.address_level4,'</option>\n                                                    <option value="address-line1">').concat(exprdawc_admin_meta_boxes.address_line1,'</option>\n                                                    <option value="address-line2">').concat(exprdawc_admin_meta_boxes.address_line2,'</option>\n                                                    <option value="address-line3">').concat(exprdawc_admin_meta_boxes.address_line3,'</option>\n                                                    <option value="bday">').concat(exprdawc_admin_meta_boxes.bday,'</option>\n                                                    <option value="bday-day">').concat(exprdawc_admin_meta_boxes.bday_day,'</option>\n                                                    <option value="bday-month">').concat(exprdawc_admin_meta_boxes.bday_month,'</option>\n                                                    <option value="bday-year">').concat(exprdawc_admin_meta_boxes.bday_year,'</option>\n                                                    <option value="cc-additional-name">').concat(exprdawc_admin_meta_boxes.cc_additional_name,'</option>\n                                                    <option value="cc-csc">').concat(exprdawc_admin_meta_boxes.cc_csc,'</option>\n                                                    <option value="cc-exp">').concat(exprdawc_admin_meta_boxes.cc_exp,'</option>\n                                                    <option value="cc-exp-month">').concat(exprdawc_admin_meta_boxes.cc_exp_month,'</option>\n                                                    <option value="cc-exp-year">').concat(exprdawc_admin_meta_boxes.cc_exp_year,'</option>\n                                                    <option value="cc-family-name">').concat(exprdawc_admin_meta_boxes.cc_family_name,'</option>\n                                                    <option value="cc-given-name">').concat(exprdawc_admin_meta_boxes.cc_given_name,'</option>\n                                                    <option value="cc-name">').concat(exprdawc_admin_meta_boxes.cc_name,'</option>\n                                                    <option value="cc-number">').concat(exprdawc_admin_meta_boxes.cc_number,'</option>\n                                                    <option value="cc-type">').concat(exprdawc_admin_meta_boxes.cc_type,'</option>\n                                                    <option value="country">').concat(exprdawc_admin_meta_boxes.country,'</option>\n                                                    <option value="country-name">').concat(exprdawc_admin_meta_boxes.country_name,'</option>\n                                                    <option value="email">').concat(exprdawc_admin_meta_boxes.email,'</option>\n                                                    <option value="language">').concat(exprdawc_admin_meta_boxes.language,'</option>\n                                                    <option value="photo">').concat(exprdawc_admin_meta_boxes.photo,'</option>\n                                                    <option value="postal-code">').concat(exprdawc_admin_meta_boxes.postal_code,'</option>\n                                                    <option value="sex">').concat(exprdawc_admin_meta_boxes.sex,'</option>\n                                                    <option value="street-address">').concat(exprdawc_admin_meta_boxes.street_address,'</option>\n                                                    <option value="tel">').concat(exprdawc_admin_meta_boxes.tel,'</option>\n                                                    <option value="tel-area-code">').concat(exprdawc_admin_meta_boxes.tel_area_code,'</option>\n                                                    <option value="tel-country-code">').concat(exprdawc_admin_meta_boxes.tel_country_code,'</option>\n                                                    <option value="tel-extension">').concat(exprdawc_admin_meta_boxes.tel_extension,'</option>\n                                                    <option value="tel-local">').concat(exprdawc_admin_meta_boxes.tel_local,'</option>\n                                                    <option value="tel-local-prefix">').concat(exprdawc_admin_meta_boxes.tel_local_prefix,'</option>\n                                                    <option value="tel-local-suffix">').concat(exprdawc_admin_meta_boxes.tel_local_suffix,'</option>\n                                                    <option value="tel-national">').concat(exprdawc_admin_meta_boxes.tel_national,'</option>\n                                                    <option value="transaction-amount">').concat(exprdawc_admin_meta_boxes.transaction_amount,'</option>\n                                                    <option value="transaction-currency">').concat(exprdawc_admin_meta_boxes.transaction_currency,'</option>\n                                                    <option value="url">').concat(exprdawc_admin_meta_boxes.url,'</option>\n                                                </select>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                                <hr>\n\n                                \x3c!-- Conditional Logic --\x3e\n\t\t\t\t                <table class="exprdawc_settings_table exprdawc_conditional_logic_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                           <td colspan="3">\n                                                <label class="exprdawc_label">').concat(exprdawc_admin_meta_boxes.conditionals,"</label>\n\t\t\t\t\t\t\t\t                <p>").concat(exprdawc_admin_meta_boxes.conditionals_description,'</p>\n                                                <div class="exprdawc_conditional_rules">\n                                                    <div class="exprdawc_rule_group_container">\n                                                        <div class="exprdawc_rule_group">\n                                                            <div class="exprdawc_rule">\n                                                                <select name="extra_product_fields[').concat(this.fieldIndex,'][conditional_rules][0][0][field]" class="exprdawc_input exprdawc_conditional_field">\n                                                                <option value="">').concat(exprdawc_admin_meta_boxes.selectFieldNone,"</option>\n                                                                ").concat(this.getAllFieldsOptions(),'\n                                                                </select>\n                                                                <select name="extra_product_fields[').concat(this.fieldIndex,'][conditional_rules][0][0][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                                                                    <option value="field_is_empty">').concat(exprdawc_admin_meta_boxes.field_is_empty,'</option>\n                                                                    <option value="field_is_not_empty">').concat(exprdawc_admin_meta_boxes.field_is_not_empty,'</option>\n                                                                    <option value="equals">').concat(exprdawc_admin_meta_boxes.equals,'</option>\n                                                                    <option value="not_equals">').concat(exprdawc_admin_meta_boxes.notEquals,'</option>\n                                                                    <option value="greater_than">').concat(exprdawc_admin_meta_boxes.greaterThan,'</option>\n                                                                    <option value="less_than">').concat(exprdawc_admin_meta_boxes.lessThan,'</option>\n                                                                </select>\n                                                                <input type="text" name="extra_product_fields[').concat(this.fieldIndex,'][conditional_rules][0][0][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="').concat(exprdawc_admin_meta_boxes.enterValue,'" style="display:none;" />\n                                                                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                                                                <button type="button" class="button add_rule">').concat(exprdawc_admin_meta_boxes.and,'</button>\n                                                            </div>\n                                                        </div>\n                                                    </div>\n                                                </div>\n                                            </td>                                            \n                                        </tr>\n                                    </tbody>\n                                </table>\n\n\n                                \x3c!-- Text Area Option/Settings --\x3e\n                                <table class="exprdawc_settings_table exprdawc_long_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_rows_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.rows,'</label>\n                                                <input type="number" id="exprdawc_long_text_rows_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_long_text_rows" name="extra_product_fields[').concat(this.fieldIndex,'][rows]" value="2" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_cols_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.columns,'</label>\n                                                <input type="number" id="exprdawc_long_text_cols_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_long_text_cols" name="extra_product_fields[').concat(this.fieldIndex,'][cols]" value="5" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_default_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.default_value,'</label>\n                                                <textarea id="exprdawc_long_text_default_').concat(this.fieldIndex,'" class="exprdawc_textarea" rows="3" cols="30" placeholder="').concat(exprdawc_admin_meta_boxes.enter_default_text,'" name="extra_product_fields[').concat(this.fieldIndex,'][default]"></textarea>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                \x3c!-- Text Option/Settings --\x3e\n                                <table class="exprdawc_settings_table exprdawc_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_min_length_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.min_length,'</label>\n                                                <input type="number" id="exprdawc_text_min_length_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_text_min_length" name="extra_product_fields[').concat(this.fieldIndex,'][minlength]" value="0" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_max_length_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.max_length,'</label>\n                                                <input type="number" id="exprdawc_text_max_length_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_text_max_length" name="extra_product_fields[').concat(this.fieldIndex,'][maxlength]" value="255" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_default_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.default_value,'</label>\n                                                <input type="text" id="exprdawc_text_default_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_text_default" placeholder="').concat(exprdawc_admin_meta_boxes.enter_default_text,'" name="extra_product_fields[').concat(this.fieldIndex,'][default]" />\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                <table class="exprdawc_options_table" style="display:none;">\n                                    <thead>\n                                        <tr>\n                                            <th></th>\n                                            <th>').concat(exprdawc_admin_meta_boxes.option_label,"</th>\n                                            <th>").concat(exprdawc_admin_meta_boxes.option_value,"</th>\n                                            <th>").concat(exprdawc_admin_meta_boxes.default,"</th>\n                                            <th>").concat(exprdawc_admin_meta_boxes.action,'</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody>\n                                        \x3c!-- Options will be dynamically added here --\x3e\n                                    </tbody>\n                                    <tfoot>\n                                        <tr>\n                                            <td colspan="4">\n                                                <button type="button" class="button add_option">').concat(exprdawc_admin_meta_boxes.add_option,'</button>\n                                            </td>\n                                        </tr>\n                                    </tfoot>\n                                </table>\n                                <p class="exprdawc_no_entry_message" style="display: none;">').concat(exprdawc_admin_meta_boxes.no_options,"</p>\n                            </td>\n                        </tr>\n                    </tbody>\n                </table>\n                </td>\n                </tr>\n                ")),this.noEntryContent(),e("#exprdawc_attribute_type_"+this.fieldIndex).trigger("change")}},{key:"removeCustomField",value:function(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").next(".exprdawc_options").remove(),e(t.currentTarget).closest("tr").remove(),this.noEntryContent()),!1}},{key:"toggleOptions",value:function(t){this.setDirty();var n=e(t.currentTarget).closest("tr"),a=n.next(".exprdawc_options"),o=a.find(".exprdawc_options_table"),c=n.find(".exprdawc_placeholder");"radio"===e(t.currentTarget).val()||"checkbox"===e(t.currentTarget).val()||"select"===e(t.currentTarget).val()?(c.prop("disabled",!0),o.show()):(c.prop("disabled",!1),o.hide()),"long_text"===e(t.currentTarget).val()?a.find(".exprdawc_long_text_table").show():a.find(".exprdawc_long_text_table").hide(),"text"===e(t.currentTarget).val()||"email"===e(t.currentTarget).val()||"number"===e(t.currentTarget).val()||"date"===e(t.currentTarget).val()?a.find(".exprdawc_text_table").show():a.find(".exprdawc_text_table").hide()}},{key:"toggleOptionsTable",value:function(t){var n=e(t.currentTarget);n.closest("tr").next(".exprdawc_options").toggle(),n.toggleClass("dashicons-arrow-down dashicons-arrow-up")}},{key:"addOption",value:function(t){this.setDirty();var n=e(t.currentTarget).closest(".exprdawc_options_table"),a=n.find("tbody tr").length;n.find("tbody").append('\n                <tr>\n                    <td class="move"><i class="dashicons dashicons-move"></i></td>\n                    <td>\n                        <input type="text" name="extra_product_fields['.concat(this.fieldIndex,"][options][").concat(a,'][label]" placeholder="').concat(exprdawc_admin_meta_boxes.option_label_placeholder,'" />\n                    </td>\n                    <td>\n                        <input type="text" name="extra_product_fields[').concat(this.fieldIndex,"][options][").concat(a,'][value]" placeholder="').concat(exprdawc_admin_meta_boxes.option_value_placeholder,'" />\n                    </td>\n                    <td>\n                        <input type="radio" name="extra_product_fields[').concat(this.fieldIndex,'][default]" value="').concat(a,'" />\n                    </td>\n                    <td>\n                        <button type="button" class="button remove_option">').concat(exprdawc_admin_meta_boxes.remove,"</button>\n                    </td>\n                </tr>\n                ")),this.checkOptions(n.closest(".exprdawc_options"))}},{key:"removeOption",value:function(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").remove(),this.checkOptions(e(t.currentTarget).closest(".exprdawc_options"))),!1}},{key:"checkOptions",value:function(e){var t=e.find(".exprdawc_options_table tbody"),n=e.find(".exprdawc_no_entry_message");0===t.find("tr").length?n.show():n.hide()}},{key:"exportContent",value:function(t){if(t.preventDefault(),console.log("exportContent"),console.log(this.isDirty),this.isDirty)alert("".concat(exprdawc_admin_meta_boxes.pleaseSaveBeforeExportMsg));else{var n=e("#exprdawc_export_string").val();n?navigator.clipboard.writeText(n).then((function(){alert("".concat(exprdawc_admin_meta_boxes.copySuccessMsg))}),(function(e){console.error("Could not copy text: ",e),alert("".concat(exprdawc_admin_meta_boxes.copyErrorMsg))})):alert("".concat(exprdawc_admin_meta_boxes.emptyExportMsg))}}},{key:"importContent",value:function(t){t.preventDefault();var n=prompt(exprdawc_admin_meta_boxes.enterExportString);if(n){if(!confirm(exprdawc_admin_meta_boxes.sureImportQuestion))return;var a=e("#post_ID").val();e.ajax({url:ajaxurl,method:"POST",data:{action:"exprdawc_import_custom_fields",product_id:a,export_string:n,security:exprdawc_admin_meta_boxes.edit_exprdawc_nonce},success:function(e){e.success?(alert(exprdawc_admin_meta_boxes.importSuccessMsg),location.reload()):alert(exprdawc_admin_meta_boxes.importErrorMsg)},error:function(){alert(exprdawc_admin_meta_boxes.importErrorMsg)}})}}},{key:"setDirty",value:function(){this.isDirty=!0,this.disableExportLink()}},{key:"disableExportLink",value:function(){this.isDirty&&e(".exprdawc-export").hide()}},{key:"noEntryContent",value:function(){var t=e("#exprdawc_field_body .exprdawc_attribute").length,n=e(".exprdawc_no_entry_message"),a=e("#exprdatawc_table_header"),o=e(".exprdawc-export");t>0?(n.hide(),a.show(),o.show()):(n.show(),a.hide(),o.hide())}},{key:"checkAutocompleteField",value:function(t){var n=e(t.currentTarget);if(n.is(":checked")){var a=e(".exprdawc_autocomplete_field").not(n).filter(":checked");if(a.length>0){if(!confirm(exprdawc_admin_meta_boxes.sureAnotherAutocompleCheckedQuestion))return void n.prop("checked",!1);a.prop("checked",!1)}}}},{key:"addRuleGroup",value:function(t){var n=e(t.currentTarget).closest(".exprdawc_conditional_logic_table").find(".exprdawc_conditional_rules"),a=n.find(".exprdawc_rule_group").length,o=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),c=this.getRuleGroupHtml(o,a);n.append(c)}},{key:"addRule",value:function(t){var n=e(t.currentTarget).closest(".exprdawc_rule_group"),a=n.index(),o=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),c=n.find(".exprdawc_rule").length,i=this.getRuleHtml(o,a,c);n.append(i)}},{key:"getRuleGroupHtml",value:function(e,t){return'\n            <div class="exprdawc_rule_group_container">\n                <h2>'.concat(exprdawc_admin_meta_boxes.or,'</h2>\n                <div class="exprdawc_rule_group">\n                    ').concat(this.getRuleHtml(e,t,0),"\n                </div>\n            </div>\n            ")}},{key:"getRuleHtml",value:function(e,t,n){return'\n            <div class="exprdawc_rule">\n                <select name="extra_product_fields['.concat(e,"][conditional_rules][").concat(t,"][").concat(n,'][field]" class="exprdawc_input exprdawc_conditional_field">\n                <option value="">').concat(exprdawc_admin_meta_boxes.selectFieldNone,"</option>\n                ").concat(this.getAllFieldsOptions(),'\n                </select>\n                <select name="extra_product_fields[').concat(e,"][conditional_rules][").concat(t,"][").concat(n,'][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                    <option value="field_is_empty">').concat(exprdawc_admin_meta_boxes.field_is_empty,'</option>\n                    <option value="field_is_not_empty">').concat(exprdawc_admin_meta_boxes.field_is_not_empty,'</option>\n                    <option value="equals">').concat(exprdawc_admin_meta_boxes.equals,'</option>\n                    <option value="not_equals">').concat(exprdawc_admin_meta_boxes.notEquals,'</option>\n                    <option value="greater_than">').concat(exprdawc_admin_meta_boxes.greaterThan,'</option>\n                    <option value="less_than">').concat(exprdawc_admin_meta_boxes.lessThan,'</option>\n                </select>\n                <input type="text" name="extra_product_fields[').concat(e,"][conditional_rules][").concat(t,"][").concat(n,'][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="').concat(exprdawc_admin_meta_boxes.enterValue,'" style="display:none;" />\n                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                <button type="button" class="button add_rule">+ ').concat(exprdawc_admin_meta_boxes.and,"</button>\n            </div>\n            ")}},{key:"toggleConditionalValueField",value:function(t){var n=e(t.currentTarget),a=n.closest(".exprdawc_rule").find(".exprdawc_conditional_value");"field_changed"===n.val()||"field_is_empty"===n.val()||"field_is_not_empty"===n.val()?a.hide():a.show()}},{key:"toggleConditionalValueFieldAll",value:function(){var t=this;e(".exprdawc_conditional_operator").each((function(e,n){t.toggleConditionalValueField({currentTarget:n})}))}},{key:"removeRule",value:function(t){if(confirm(exprdawc_admin_meta_boxes.confirm_delete_rule)){var n=e(t.currentTarget).closest(".exprdawc_rule_group_container");e(t.currentTarget).closest(".exprdawc_rule").remove(),0===n.find(".exprdawc_rule").length&&n.remove()}return!1}},{key:"getAllFieldsOptions",value:function(){var t="";return e("#exprdawc_field_body tr.exprdawc_attribute").each((function(){var n=e(this).find(".exprdawc_attribute_input_name input").val();t+='<option value="'.concat(n,'">').concat(n,"</option>")})),t}},{key:"toggleConditionalTable",value:function(t){var n=e(t.currentTarget),a=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_conditional_logic_table");n.is(":checked")?a.show():a.hide()}}],a&&t(n.prototype,a),o&&t(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,a,o}())}))},989:()=>{},99:()=>{}},n={};function a(e){var o=n[e];if(void 0!==o)return o.exports;var c=n[e]={exports:{}};return t[e](c,c.exports,a),c.exports}a.m=t,e=[],a.O=(t,n,o,c)=>{if(!n){var i=1/0;for(_=0;_<e.length;_++){for(var[n,o,c]=e[_],d=!0,r=0;r<n.length;r++)(!1&c||i>=c)&&Object.keys(a.O).every((e=>a.O[e](n[r])))?n.splice(r--,1):(d=!1,c<i&&(i=c));if(d){e.splice(_--,1);var l=o();void 0!==l&&(t=l)}}return t}c=c||0;for(var _=e.length;_>0&&e[_-1][2]>c;_--)e[_]=e[_-1];e[_]=[n,o,c]},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={890:0,956:0,107:0};a.O.j=t=>0===e[t];var t=(t,n)=>{var o,c,[i,d,r]=n,l=0;if(i.some((t=>0!==e[t]))){for(o in d)a.o(d,o)&&(a.m[o]=d[o]);if(r)var _=r(a)}for(t&&t(n);l<i.length;l++)c=i[l],a.o(e,c)&&e[c]&&e[c][0](),e[c]=0;return a.O(_)},n=self.webpackChunkextra_product_data_for_woocommerce=self.webpackChunkextra_product_data_for_woocommerce||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),a.O(void 0,[956,107],(()=>a(976))),a.O(void 0,[956,107],(()=>a(989)));var o=a.O(void 0,[956,107],(()=>a(99)));o=a.O(o)})();
     2(()=>{var e,t={976:()=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,a(o.key),o)}}function a(t){var a=function(t,a){if("object"!=e(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,a||"default");if("object"!=e(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===a?String:Number)(t)}(t,"string");return"symbol"==e(a)?a:a+""}jQuery((function(e){new(function(){return a=function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.fieldIndex=e("#exprdawc_field_body tr.exprdawc_attribute").length,this.isDirty=!1,this.init()},n=[{key:"init",value:function(){this.bindEvents(),this.noEntryContent()}},{key:"bindEvents",value:function(){e("#exprdawc_add_custom_field").on("click",this.addCustomField.bind(this)),e(document).on("click",".exprdawc_remove_custom_field",this.removeCustomField.bind(this)),e(document).on("change",".exprdawc_attribute_type",this.toggleOptions.bind(this)),e(document).on("click",".toggle-options",this.toggleOptionsTable.bind(this)),e(document).on("click",".add_option",this.addOption.bind(this)),e(document).on("click",".remove_option",this.removeOption.bind(this)),e(document).on("click","a.exprdawc-export",this.exportContent.bind(this)),e(document).on("click","a.exprdawc-import",this.importContent.bind(this)),e(document).on("change",".exprdawc_input",this.setDirty.bind(this)),e(document).on("change",".exprdawc_autocomplete_field",this.checkAutocompleteField.bind(this)),e(document).on("click",".add_rule_group",this.addRuleGroup.bind(this)),e(document).on("click",".add_rule",this.addRule.bind(this)),e(document).on("click",".remove_rule",this.removeRule.bind(this)),e(document).on("change",".exprdawc_conditional_operator",this.toggleConditionalValueField.bind(this)),e(document).on("change",".exprdawc_conditional_logic_field",this.toggleConditionalTable.bind(this)),this.toggleConditionalValueFieldAll(),e(".exprdawc_field_table tbody").sortable({items:"tr.exprdawc_fields_wrapper",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")}}),e(document).on("mouseenter",".exprdawc_options_table tbody",(function(){e(this).sortable({items:"tr",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")}})})),e("#exprdawc_attribute_container").on("input",".exprdawc_attribute .exprdawc_attribute_input_name input",(function(){var t=e(this).val(),a=e(this).closest(".exprdawc_attribute").find(".attribute_name");t&&a.text(t)}))}},{key:"addCustomField",value:function(){this.fieldIndex++,this.setDirty(),e("#exprdawc_field_body").append('\n                <tr class="exprdawc_fields_wrapper">\n                <td colspan="5">\n                <table class="exprdawc_fields_table" data-index="'.concat(this.fieldIndex,'">\n\t                <tbody>\n                        <tr class="exprdawc_attribute">\n                            <td class="move"><i class="dashicons dashicons-move"></i></td>\n                            <td class="cl-arr"><i class="dashicons dashicons-arrow-up toggle-options"></i></td>\n                            <td class="exprdawc_attribute_input_name">\n                                <input type="text" name="extra_product_fields[').concat(this.fieldIndex,'][label]" placeholder="').concat(exprdawc_admin_meta_boxes.label_placeholder,'" />\n                            </td>\n                            <td>\n                                <select id="exprdawc_attribute_type_').concat(this.fieldIndex,'" name="extra_product_fields[').concat(this.fieldIndex,'][type]" class="exprdawc_attribute_type">\n                                    <option value="text">').concat(exprdawc_admin_meta_boxes.short_text,'</option>\n                                    <option value="long_text">').concat(exprdawc_admin_meta_boxes.long_text,'</option>\n                                    <option value="email">').concat(exprdawc_admin_meta_boxes.email,'</option>\n                                    <option value="number">').concat(exprdawc_admin_meta_boxes.number,'</option>\n                                    <option value="date">').concat(exprdawc_admin_meta_boxes.date,'</option>\n                                    <option value="yes-no">').concat(exprdawc_admin_meta_boxes.yes_no,'</option>\n                                    <option value="radio">').concat(exprdawc_admin_meta_boxes.radio,'</option>\n                                    <option value="checkbox">').concat(exprdawc_admin_meta_boxes.checkbox,'</option>\n                                    <option value="select">').concat(exprdawc_admin_meta_boxes.select,'</option>\n                                </select>\n                            </td>\n                            <td>\n                                <button type="button" class="exprdawc_remove_custom_field button"><i class="dashicons dashicons-trash"></i></button>\n                                <input type="hidden" class="exprdawc_attribute_index" name="extra_product_fields[').concat(this.fieldIndex,'][index]" value="').concat(this.fieldIndex,'"/>\n                            </td>\n                        </tr>\n                        <tr class="exprdawc_options" style="display: none;">\n                            <td colspan="5">\n\n                                <table class="exprdawc_settings_table exprdawc_general_table">\n                                    <tbody>\n\n                                        \x3c!-- Text Area Option/Settings --\x3e\n                                        <tr>\n                                            <td class="exprdawc_attribute_require_checkbox">\n                                                <label class="exprdawc_label" for="exprdawc_text_required_').concat(this.fieldIndex,'">\n                                                    <input type="checkbox" id="exprdawc_text_required_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[').concat(this.fieldIndex,'][required]" value="1" />\n                                                    ').concat(exprdawc_admin_meta_boxes.require_input,'\n                                                </label>                                       \n                                                <label class="exprdawc_label" for="exprdawc_text_autofocus_').concat(this.fieldIndex,'">\n                                                    <input type="checkbox" id="exprdawc_text_autofocus_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[').concat(this.fieldIndex,'][autofocus]" value="1" />\n                                                    ').concat(exprdawc_admin_meta_boxes.enable_autofocus,'\n                                                </label>\n                                                <label class="exprdawc_label" for="exprdawc_text_editable_').concat(this.fieldIndex,'">\n                                                    <input type="checkbox" id="exprdawc_text_editable_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_checkbox exprdawc_editable_field checkbox" name="extra_product_fields[').concat(this.fieldIndex,'][editable]" value="1" />\n                                                    ').concat(exprdawc_admin_meta_boxes.enable_editable,'\n                                                </label>\n\n                                                \x3c!-- Enable Conditional Logic and show table --\x3e\n                                                <label class="exprdawc_label" for="exprdawc_text_conditional_logic_').concat(this.fieldIndex,'">\n                                                    <input type="checkbox" id="exprdawc_text_conditional_logic_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_checkbox exprdawc_conditional_logic_field checkbox" name="extra_product_fields[').concat(this.fieldIndex,'][conditional_logic]" value="1" />\n                                                    ').concat(exprdawc_admin_meta_boxes.enable_conditional_logic,'\n                                                </label>\n                                            </td>\n                                            <td class="exprdawc_attribute_placeholder_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_placeholder_text_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.placeholder_text,'</label>\n                                                <input type="text" id="exprdawc_text_placeholder_text_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_textinput exprdawc_placeholder" name="extra_product_fields[').concat(this.fieldIndex,'][placeholder_text]" placeholder="').concat(exprdawc_admin_meta_boxes.placeholder_text,'" />\n                                            </td>\n                                            <td class="exprdawc_attribute_help_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_help_text_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.help_text,'</label>\n                                                <input type="text" id="exprdawc_text_help_text_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_textinput exprdawc_helptext" name="extra_product_fields[').concat(this.fieldIndex,'][help_text]" placeholder="').concat(exprdawc_admin_meta_boxes.help_text,'" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_autocomplete_function_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.autocomplete_function,'</label>\n                                                <select id="exprdawc_autocomplete_function_').concat(this.fieldIndex,'" name="extra_product_fields[').concat(this.fieldIndex,'][autocomplete]" class="exprdawc_input exprdawc_attribute_type">\n                                                    <option value="on">').concat(exprdawc_admin_meta_boxes.autocomplete_on,'</option>\n                                                    <option value="off">').concat(exprdawc_admin_meta_boxes.autocomplete_off,'</option>\n                                                    <option value="address-level1">').concat(exprdawc_admin_meta_boxes.address_level1,'</option>\n                                                    <option value="address-level2">').concat(exprdawc_admin_meta_boxes.address_level2,'</option>\n                                                    <option value="address-level3">').concat(exprdawc_admin_meta_boxes.address_level3,'</option>\n                                                    <option value="address-level4">').concat(exprdawc_admin_meta_boxes.address_level4,'</option>\n                                                    <option value="address-line1">').concat(exprdawc_admin_meta_boxes.address_line1,'</option>\n                                                    <option value="address-line2">').concat(exprdawc_admin_meta_boxes.address_line2,'</option>\n                                                    <option value="address-line3">').concat(exprdawc_admin_meta_boxes.address_line3,'</option>\n                                                    <option value="bday">').concat(exprdawc_admin_meta_boxes.bday,'</option>\n                                                    <option value="bday-day">').concat(exprdawc_admin_meta_boxes.bday_day,'</option>\n                                                    <option value="bday-month">').concat(exprdawc_admin_meta_boxes.bday_month,'</option>\n                                                    <option value="bday-year">').concat(exprdawc_admin_meta_boxes.bday_year,'</option>\n                                                    <option value="cc-additional-name">').concat(exprdawc_admin_meta_boxes.cc_additional_name,'</option>\n                                                    <option value="cc-csc">').concat(exprdawc_admin_meta_boxes.cc_csc,'</option>\n                                                    <option value="cc-exp">').concat(exprdawc_admin_meta_boxes.cc_exp,'</option>\n                                                    <option value="cc-exp-month">').concat(exprdawc_admin_meta_boxes.cc_exp_month,'</option>\n                                                    <option value="cc-exp-year">').concat(exprdawc_admin_meta_boxes.cc_exp_year,'</option>\n                                                    <option value="cc-family-name">').concat(exprdawc_admin_meta_boxes.cc_family_name,'</option>\n                                                    <option value="cc-given-name">').concat(exprdawc_admin_meta_boxes.cc_given_name,'</option>\n                                                    <option value="cc-name">').concat(exprdawc_admin_meta_boxes.cc_name,'</option>\n                                                    <option value="cc-number">').concat(exprdawc_admin_meta_boxes.cc_number,'</option>\n                                                    <option value="cc-type">').concat(exprdawc_admin_meta_boxes.cc_type,'</option>\n                                                    <option value="country">').concat(exprdawc_admin_meta_boxes.country,'</option>\n                                                    <option value="country-name">').concat(exprdawc_admin_meta_boxes.country_name,'</option>\n                                                    <option value="email">').concat(exprdawc_admin_meta_boxes.email,'</option>\n                                                    <option value="language">').concat(exprdawc_admin_meta_boxes.language,'</option>\n                                                    <option value="photo">').concat(exprdawc_admin_meta_boxes.photo,'</option>\n                                                    <option value="postal-code">').concat(exprdawc_admin_meta_boxes.postal_code,'</option>\n                                                    <option value="sex">').concat(exprdawc_admin_meta_boxes.sex,'</option>\n                                                    <option value="street-address">').concat(exprdawc_admin_meta_boxes.street_address,'</option>\n                                                    <option value="tel">').concat(exprdawc_admin_meta_boxes.tel,'</option>\n                                                    <option value="tel-area-code">').concat(exprdawc_admin_meta_boxes.tel_area_code,'</option>\n                                                    <option value="tel-country-code">').concat(exprdawc_admin_meta_boxes.tel_country_code,'</option>\n                                                    <option value="tel-extension">').concat(exprdawc_admin_meta_boxes.tel_extension,'</option>\n                                                    <option value="tel-local">').concat(exprdawc_admin_meta_boxes.tel_local,'</option>\n                                                    <option value="tel-local-prefix">').concat(exprdawc_admin_meta_boxes.tel_local_prefix,'</option>\n                                                    <option value="tel-local-suffix">').concat(exprdawc_admin_meta_boxes.tel_local_suffix,'</option>\n                                                    <option value="tel-national">').concat(exprdawc_admin_meta_boxes.tel_national,'</option>\n                                                    <option value="transaction-amount">').concat(exprdawc_admin_meta_boxes.transaction_amount,'</option>\n                                                    <option value="transaction-currency">').concat(exprdawc_admin_meta_boxes.transaction_currency,'</option>\n                                                    <option value="url">').concat(exprdawc_admin_meta_boxes.url,'</option>\n                                                </select>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                                <hr>\n\n                                \x3c!-- Conditional Logic --\x3e\n\t\t\t\t                <table class="exprdawc_settings_table exprdawc_conditional_logic_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                           <td colspan="3">\n                                                <label class="exprdawc_label">').concat(exprdawc_admin_meta_boxes.conditionals,"</label>\n\t\t\t\t\t\t\t\t                <p>").concat(exprdawc_admin_meta_boxes.conditionals_description,'</p>\n                                                <div class="exprdawc_conditional_rules">\n                                                    <div class="exprdawc_rule_group_container">\n                                                        <div class="exprdawc_rule_group">\n                                                            <div class="exprdawc_rule">\n                                                                <select name="extra_product_fields[').concat(this.fieldIndex,'][conditional_rules][0][0][field]" class="exprdawc_input exprdawc_conditional_field">\n                                                                <option value="">').concat(exprdawc_admin_meta_boxes.selectFieldNone,"</option>\n                                                                ").concat(this.getAllFieldsOptions(),'\n                                                                </select>\n                                                                <select name="extra_product_fields[').concat(this.fieldIndex,'][conditional_rules][0][0][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                                                                    <option value="field_is_empty">').concat(exprdawc_admin_meta_boxes.field_is_empty,'</option>\n                                                                    <option value="field_is_not_empty">').concat(exprdawc_admin_meta_boxes.field_is_not_empty,'</option>\n                                                                    <option value="equals">').concat(exprdawc_admin_meta_boxes.equals,'</option>\n                                                                    <option value="not_equals">').concat(exprdawc_admin_meta_boxes.notEquals,'</option>\n                                                                    <option value="greater_than">').concat(exprdawc_admin_meta_boxes.greaterThan,'</option>\n                                                                    <option value="less_than">').concat(exprdawc_admin_meta_boxes.lessThan,'</option>\n                                                                </select>\n                                                                <input type="text" name="extra_product_fields[').concat(this.fieldIndex,'][conditional_rules][0][0][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="').concat(exprdawc_admin_meta_boxes.enterValue,'" style="display:none;" />\n                                                                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                                                                <button type="button" class="button add_rule">').concat(exprdawc_admin_meta_boxes.and,'</button>\n                                                            </div>\n                                                        </div>\n                                                    </div>\n                                                </div>\n                                            </td>                                            \n                                        </tr>\n                                    </tbody>\n                                </table>\n\n\n                                \x3c!-- Text Area Option/Settings --\x3e\n                                <table class="exprdawc_settings_table exprdawc_long_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_rows_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.rows,'</label>\n                                                <input type="number" id="exprdawc_long_text_rows_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_long_text_rows" name="extra_product_fields[').concat(this.fieldIndex,'][rows]" value="2" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_cols_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.columns,'</label>\n                                                <input type="number" id="exprdawc_long_text_cols_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_long_text_cols" name="extra_product_fields[').concat(this.fieldIndex,'][cols]" value="5" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_default_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.default_value,'</label>\n                                                <textarea id="exprdawc_long_text_default_').concat(this.fieldIndex,'" class="exprdawc_textarea" rows="3" cols="30" placeholder="').concat(exprdawc_admin_meta_boxes.enter_default_text,'" name="extra_product_fields[').concat(this.fieldIndex,'][default]"></textarea>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                \x3c!-- Text Option/Settings --\x3e\n                                <table class="exprdawc_settings_table exprdawc_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_min_length_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.min_length,'</label>\n                                                <input type="number" id="exprdawc_text_min_length_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_text_min_length" name="extra_product_fields[').concat(this.fieldIndex,'][minlength]" value="0" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_max_length_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.max_length,'</label>\n                                                <input type="number" id="exprdawc_text_max_length_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_text_max_length" name="extra_product_fields[').concat(this.fieldIndex,'][maxlength]" value="255" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_default_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.default_value,'</label>\n                                                <input type="text" id="exprdawc_text_default_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_text_default" placeholder="').concat(exprdawc_admin_meta_boxes.enter_default_text,'" name="extra_product_fields[').concat(this.fieldIndex,'][default]" />\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                <table class="exprdawc_options_table" style="display:none;">\n                                    <thead>\n                                        <tr>\n                                            <th></th>\n                                            <th>').concat(exprdawc_admin_meta_boxes.option_label,"</th>\n                                            <th>").concat(exprdawc_admin_meta_boxes.option_value,"</th>\n                                            <th>").concat(exprdawc_admin_meta_boxes.default,"</th>\n                                            <th>").concat(exprdawc_admin_meta_boxes.action,'</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody>\n                                        \x3c!-- Options will be dynamically added here --\x3e\n                                    </tbody>\n                                    <tfoot>\n                                        <tr>\n                                            <td colspan="4">\n                                                <button type="button" class="button add_option">').concat(exprdawc_admin_meta_boxes.add_option,'</button>\n                                            </td>\n                                        </tr>\n                                    </tfoot>\n                                </table>\n                                <p class="exprdawc_no_entry_message" style="display: none;">').concat(exprdawc_admin_meta_boxes.no_options,"</p>\n                            </td>\n                        </tr>\n                    </tbody>\n                </table>\n                </td>\n                </tr>\n                ")),this.noEntryContent(),e("#exprdawc_attribute_type_"+this.fieldIndex).trigger("change")}},{key:"removeCustomField",value:function(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").next(".exprdawc_options").remove(),e(t.currentTarget).closest("tr").remove(),this.noEntryContent()),!1}},{key:"toggleOptions",value:function(t){this.setDirty();var a=e(t.currentTarget).closest("tr"),n=a.next(".exprdawc_options"),o=n.find(".exprdawc_options_table"),c=a.find(".exprdawc_placeholder");"radio"===e(t.currentTarget).val()||"checkbox"===e(t.currentTarget).val()||"select"===e(t.currentTarget).val()?(c.prop("disabled",!0),o.show()):(c.prop("disabled",!1),o.hide()),"long_text"===e(t.currentTarget).val()?n.find(".exprdawc_long_text_table").show():n.find(".exprdawc_long_text_table").hide(),"text"===e(t.currentTarget).val()||"email"===e(t.currentTarget).val()||"number"===e(t.currentTarget).val()||"date"===e(t.currentTarget).val()?n.find(".exprdawc_text_table").show():n.find(".exprdawc_text_table").hide()}},{key:"toggleOptionsTable",value:function(t){var a=e(t.currentTarget);a.closest("tr").next(".exprdawc_options").toggle(),a.toggleClass("dashicons-arrow-down dashicons-arrow-up")}},{key:"addOption",value:function(t){this.setDirty();var a=e(t.currentTarget).closest(".exprdawc_options_table"),n=a.find("tbody tr").length;a.find("tbody").append('\n                <tr>\n                    <td class="move"><i class="dashicons dashicons-move"></i></td>\n                    <td>\n                        <input type="text" name="extra_product_fields['.concat(this.fieldIndex,"][options][").concat(n,'][label]" placeholder="').concat(exprdawc_admin_meta_boxes.option_label_placeholder,'" />\n                    </td>\n                    <td>\n                        <input type="text" name="extra_product_fields[').concat(this.fieldIndex,"][options][").concat(n,'][value]" placeholder="').concat(exprdawc_admin_meta_boxes.option_value_placeholder,'" />\n                    </td>\n                    <td>\n                        <input type="radio" name="extra_product_fields[').concat(this.fieldIndex,'][default]" value="').concat(n,'" />\n                    </td>\n                    <td>\n                        <button type="button" class="button remove_option">').concat(exprdawc_admin_meta_boxes.remove,"</button>\n                    </td>\n                </tr>\n                ")),this.checkOptions(a.closest(".exprdawc_options"))}},{key:"removeOption",value:function(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").remove(),this.checkOptions(e(t.currentTarget).closest(".exprdawc_options"))),!1}},{key:"checkOptions",value:function(e){var t=e.find(".exprdawc_options_table tbody"),a=e.find(".exprdawc_no_entry_message");0===t.find("tr").length?a.show():a.hide()}},{key:"exportContent",value:function(t){if(t.preventDefault(),console.log("exportContent"),console.log(this.isDirty),this.isDirty)alert("".concat(exprdawc_admin_meta_boxes.pleaseSaveBeforeExportMsg));else{var a=e("#exprdawc_export_string").val();a?navigator.clipboard.writeText(a).then((function(){alert("".concat(exprdawc_admin_meta_boxes.copySuccessMsg))}),(function(e){console.error("Could not copy text: ",e),alert("".concat(exprdawc_admin_meta_boxes.copyErrorMsg))})):alert("".concat(exprdawc_admin_meta_boxes.emptyExportMsg))}}},{key:"importContent",value:function(t){t.preventDefault();var a=prompt(exprdawc_admin_meta_boxes.enterExportString);if(a){if(!confirm(exprdawc_admin_meta_boxes.sureImportQuestion))return;var n=e("#post_ID").val();e.ajax({url:ajaxurl,method:"POST",data:{action:"exprdawc_import_custom_fields",product_id:n,export_string:a,security:exprdawc_admin_meta_boxes.edit_exprdawc_nonce},success:function(e){e.success?(alert(exprdawc_admin_meta_boxes.importSuccessMsg),location.reload()):alert(exprdawc_admin_meta_boxes.importErrorMsg)},error:function(){alert(exprdawc_admin_meta_boxes.importErrorMsg)}})}}},{key:"setDirty",value:function(){this.isDirty=!0,this.disableExportLink()}},{key:"disableExportLink",value:function(){this.isDirty&&e(".exprdawc-export").hide()}},{key:"noEntryContent",value:function(){var t=e("#exprdawc_field_body .exprdawc_attribute").length,a=e(".exprdawc_no_entry_message"),n=e("#exprdatawc_table_header"),o=e(".exprdawc-export");t>0?(a.hide(),n.show(),o.show()):(a.show(),n.hide(),o.hide())}},{key:"checkAutocompleteField",value:function(t){var a=e(t.currentTarget);if(a.is(":checked")){var n=e(".exprdawc_autocomplete_field").not(a).filter(":checked");if(n.length>0){if(!confirm(exprdawc_admin_meta_boxes.sureAnotherAutocompleCheckedQuestion))return void a.prop("checked",!1);n.prop("checked",!1)}}}},{key:"addRuleGroup",value:function(t){var a=e(t.currentTarget).closest(".exprdawc_conditional_logic_table").find(".exprdawc_conditional_rules"),n=a.find(".exprdawc_rule_group").length,o=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),c=this.getRuleGroupHtml(o,n);a.append(c)}},{key:"addRule",value:function(t){var a=e(t.currentTarget).closest(".exprdawc_rule_group"),n=a.index(),o=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),c=a.find(".exprdawc_rule").length,i=this.getRuleHtml(o,n,c);a.append(i)}},{key:"getRuleGroupHtml",value:function(e,t){return'\n            <div class="exprdawc_rule_group_container">\n                <h2>'.concat(exprdawc_admin_meta_boxes.or,'</h2>\n                <div class="exprdawc_rule_group">\n                    ').concat(this.getRuleHtml(e,t,0),"\n                </div>\n            </div>\n            ")}},{key:"getRuleHtml",value:function(e,t,a){return'\n            <div class="exprdawc_rule">\n                <select name="extra_product_fields['.concat(e,"][conditional_rules][").concat(t,"][").concat(a,'][field]" class="exprdawc_input exprdawc_conditional_field">\n                <option value="">').concat(exprdawc_admin_meta_boxes.selectFieldNone,"</option>\n                ").concat(this.getAllFieldsOptions(),'\n                </select>\n                <select name="extra_product_fields[').concat(e,"][conditional_rules][").concat(t,"][").concat(a,'][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                    <option value="field_is_empty">').concat(exprdawc_admin_meta_boxes.field_is_empty,'</option>\n                    <option value="field_is_not_empty">').concat(exprdawc_admin_meta_boxes.field_is_not_empty,'</option>\n                    <option value="equals">').concat(exprdawc_admin_meta_boxes.equals,'</option>\n                    <option value="not_equals">').concat(exprdawc_admin_meta_boxes.notEquals,'</option>\n                    <option value="greater_than">').concat(exprdawc_admin_meta_boxes.greaterThan,'</option>\n                    <option value="less_than">').concat(exprdawc_admin_meta_boxes.lessThan,'</option>\n                </select>\n                <input type="text" name="extra_product_fields[').concat(e,"][conditional_rules][").concat(t,"][").concat(a,'][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="').concat(exprdawc_admin_meta_boxes.enterValue,'" style="display:none;" />\n                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                <button type="button" class="button add_rule">+ ').concat(exprdawc_admin_meta_boxes.and,"</button>\n            </div>\n            ")}},{key:"toggleConditionalValueField",value:function(t){var a=e(t.currentTarget),n=a.closest(".exprdawc_rule").find(".exprdawc_conditional_value");"field_changed"===a.val()||"field_is_empty"===a.val()||"field_is_not_empty"===a.val()?n.hide():n.show()}},{key:"toggleConditionalValueFieldAll",value:function(){var t=this;e(".exprdawc_conditional_operator").each((function(e,a){t.toggleConditionalValueField({currentTarget:a})}))}},{key:"removeRule",value:function(t){if(confirm(exprdawc_admin_meta_boxes.confirm_delete_rule)){var a=e(t.currentTarget).closest(".exprdawc_rule_group_container");e(t.currentTarget).closest(".exprdawc_rule").remove(),0===a.find(".exprdawc_rule").length&&a.remove()}return!1}},{key:"getAllFieldsOptions",value:function(){var t="";return e("#exprdawc_field_body tr.exprdawc_attribute").each((function(){var a=e(this).find(".exprdawc_attribute_input_name input").val();t+='<option value="'.concat(a,'">').concat(a,"</option>")})),t}},{key:"toggleConditionalTable",value:function(t){var a=e(t.currentTarget),n=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_conditional_logic_table");a.is(":checked")?n.show():n.hide()}}],n&&t(a.prototype,n),o&&t(a,o),Object.defineProperty(a,"prototype",{writable:!1}),a;var a,n,o}())}))},989:()=>{},99:()=>{},364:()=>{}},a={};function n(e){var o=a[e];if(void 0!==o)return o.exports;var c=a[e]={exports:{}};return t[e](c,c.exports,n),c.exports}n.m=t,e=[],n.O=(t,a,o,c)=>{if(!a){var i=1/0;for(_=0;_<e.length;_++){for(var[a,o,c]=e[_],d=!0,l=0;l<a.length;l++)(!1&c||i>=c)&&Object.keys(n.O).every((e=>n.O[e](a[l])))?a.splice(l--,1):(d=!1,c<i&&(i=c));if(d){e.splice(_--,1);var r=o();void 0!==r&&(t=r)}}return t}c=c||0;for(var _=e.length;_>0&&e[_-1][2]>c;_--)e[_]=e[_-1];e[_]=[a,o,c]},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={890:0,898:0,956:0,107:0};n.O.j=t=>0===e[t];var t=(t,a)=>{var o,c,[i,d,l]=a,r=0;if(i.some((t=>0!==e[t]))){for(o in d)n.o(d,o)&&(n.m[o]=d[o]);if(l)var _=l(n)}for(t&&t(a);r<i.length;r++)c=i[r],n.o(e,c)&&e[c]&&e[c][0](),e[c]=0;return n.O(_)},a=self.webpackChunkextra_product_data_for_woocommerce=self.webpackChunkextra_product_data_for_woocommerce||[];a.forEach(t.bind(null,0)),a.push=t.bind(null,a.push.bind(a))})(),n.O(void 0,[898,956,107],(()=>n(976))),n.O(void 0,[898,956,107],(()=>n(989))),n.O(void 0,[898,956,107],(()=>n(99)));var o=n.O(void 0,[898,956,107],(()=>n(364)));o=n.O(o)})();
  • extra-product-data-for-woocommerce/tags/1.7.0/extra-product-data-for-woocommerce.php

    r3204699 r3206929  
    33Plugin Name: Extra Product Data for WooCommerce
    44Description: Adds customizable input fields per product in WooCommerce, allowing users to enter extra details on the frontend.
    5 Version: 1.5.1
     5Version: 1.7.0
    66Author: Triopsi
    77Author URI: https://triopsi.dev
     
    2222
    2323// Useful global constants.
    24 define( 'EXPRDAWC_VERSION', '1.0.0' );
     24define( 'EXPRDAWC_VERSION', '1.7.0' );
    2525define( 'EXPRDAWC_URL', plugin_dir_url( __FILE__ ) );
    2626define( 'EXPRDAWC_PATH', __DIR__ . '/' );
    2727define( 'EXPRDAWC_CLSUF', 'exprdawc' );
     28define( 'EXPRDAWC_BASENAME', plugin_basename( __FILE__ ) );
    2829define( 'EXPRDAWC_SRC', EXPRDAWC_PATH . 'src/' );
    2930define( 'EXPRDAWC_CLASSES', EXPRDAWC_PATH . 'src/classes/' );
     
    5152}
    5253
     54// Declare compatibility with WooCommerce HPOS.
     55add_action(
     56    'before_woocommerce_init',
     57    function () {
     58        if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) {
     59            \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true );
     60
     61        }
     62    }
     63);
     64
    5365/**
    5466 * Display an admin notice if WooCommerce is not active.
  • extra-product-data-for-woocommerce/tags/1.7.0/readme.txt

    r3204699 r3206929  
    55Tested up to: 6.7
    66Requires PHP: 8.2
    7 Stable tag: 1.5.1
     7Stable tag: 1.7.0
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    107107= 1.5.1 =
    108108* edit button dont visible on order overview
     109
     110= 1.6.0 =
     111* add setting page and add options for "Show on Cart" and "Show on Checkout"
     112
     113= 1.7.0 =
     114* add editable section for user in the order overview
     115* compatibility with WooCommerce HPOS
  • extra-product-data-for-woocommerce/tags/1.7.0/src/classes/class-exprdawc-admin-order.php

    r3204699 r3206929  
    9898        }
    9999
    100         /** @disregard */
    101         $custom_fields = get_post_meta( $item->get_product_id(), '_extra_product_fields', true );
     100        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    102101
    103102        if ( empty( $custom_fields ) ) {
     
    179178        /** @disregard */
    180179        $product       = $item->get_product();
    181         $custom_fields = get_post_meta( $product->get_id(), '_extra_product_fields', true );
     180        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    182181
    183182        if ( empty( $custom_fields ) ) {
     
    251250        /** @disregard */
    252251        $product       = $item->get_product();
    253         $custom_fields = get_post_meta( $product->get_id(), '_extra_product_fields', true );
     252        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    254253
    255254        // Check if the product and custom fields are valid.
  • extra-product-data-for-woocommerce/tags/1.7.0/src/classes/class-exprdawc-helper.php

    r3202511 r3206929  
    7171            'autocomplete'        => isset( $field_array['autocomplete'] ) ? $field_array['autocomplete'] : '',
    7272            'autofocus'           => isset( $field_array['autofocus'] ) ? $field_array['autofocus'] : false,
     73            'disabled'            => isset( $field_array['disabled'] ) ? $field_array['disabled'] : false,
    7374            'validate'            => isset( $field_array['validate'] ) ? $field_array['validate'] : array(),
    7475            'data'                => array(),
     
    8384        if ( isset( $_POST[ $field_id ] ) ) {
    8485            $field_args['value'] = sanitize_text_field( wp_unslash( $_POST[ $field_id ] ) );
    85         } elseif ( ! empty( $actual_value_array[ $id ] ) ) {
     86        } elseif ( isset( $actual_value_array[ $id ] ) ) {
    8687            $field_args['value'] = sanitize_text_field( wp_unslash( $actual_value_array[ $id ] ) );
    8788        } elseif ( isset( $field_array['default'] ) ) {
     
    146147        }
    147148
     149        if ( true === $field_args['disabled'] ) {
     150            $field_args['custom_attributes']['disabled'] = 'disabled';
     151            $field_args['input_class'][] = 'disabled';
     152        }
     153
    148154        if ( $field_args['description'] ) {
    149             $field_args['custom_attributes']['aria-describedby'] = $field_args['id'] . '-description';
     155            $field_args['custom_attributes']['aria-describedby'] = $field_id_raw . '-description';
    150156        }
    151157
  • extra-product-data-for-woocommerce/tags/1.7.0/src/classes/class-exprdawc-main.php

    r3202511 r3206929  
    7777
    7878    /**
    79     * Overview Order Obejct Holder.
    80     *
    81     * @var \Overview_Order
    82     */
    83    protected $exprdawc_admin_order_edit = null;
     79     * Overview Order Obejct Holder.
     80     *
     81     * @var \Overview_Order
     82     */
     83    protected $exprdawc_admin_order_edit = null;
     84
     85    /**
     86     * Settings Object Holder.
     87     *
     88     * @var \Settings
     89     */
     90    protected $exprdawc_settings = null;
    8491
    8592    /**
     
    115122        // Add CSS an JS for backend.
    116123        add_action( 'admin_enqueue_scripts', array( $this, 'exprdawc_only_admin_enqueue_scripts' ) );
     124
     125        // Add Plugin Setting Links.
     126        add_filter('plugin_action_links_' . EXPRDAWC_BASENAME, array($this, 'exprdawc_plugin_action_links'));
     127    }
     128
     129    /**
     130     * Add Plugin Action Links.
     131     *
     132     * @param array $links The current links.
     133     * @return array The modified links.
     134     */
     135    public function exprdawc_plugin_action_links($links) {
     136        $links[] = '<a href="' . admin_url('admin.php?page=wc-settings&tab=products&section=extra_product_data') . '">' . __('Settings', 'extra-product-data-for-woocommerce') . '</a>';
     137        return $links;
    117138    }
    118139
     
    141162            $this->exprdawc_admin_order_edit = new Exprdawc_Admin_Order();
    142163
     164            // Settings.
     165            $this->exprdawc_settings = new Exprdawc_Settings();
     166
     167            // User Order.
     168            new Exprdawc_User_Order();
     169
    143170        }
    144171    }
  • extra-product-data-for-woocommerce/tags/1.7.0/src/classes/class-exprdawc-overview-cart.php

    r3202511 r3206929  
    4646    public function __construct() {
    4747        add_filter( 'woocommerce_add_cart_item_data', array( $this, 'exprdawc_save_custom_field_in_cart' ), 10, 2 );
    48         add_filter( 'woocommerce_get_item_data', array( $this, 'exprdawc_display_custom_field_in_cart' ), 10, 2 );
     48        add_filter( 'woocommerce_get_item_data', array( $this, 'exprdawc_display_fields_on_cart_and_checkout' ), 10, 2 );
    4949    }
    5050
     
    6565        }
    6666
    67         $custom_fields = get_post_meta( $product_id, '_extra_product_fields', true );
     67        $pruducts = wc_get_product( $product_id );
     68        if ( ! $pruducts ) {
     69            return $cart_item_data;
     70        }
     71        $custom_fields = $pruducts->get_meta( '_extra_product_fields', true );
    6872
    6973        if ( ! empty( $custom_fields ) ) {
     
    111115
    112116    /**
    113      * This function is responsible for displaying custom fields in the cart.
     117     * This function is responsible for displaying custom fields in the cart and checkout.
    114118     *
    115119     * @param array $item_data The item data.
     
    117121     * @return void
    118122     */
    119     function exprdawc_display_custom_field_in_cart( $item_data, $cart_item ) {
    120         $custom_fields = get_post_meta( $cart_item['product_id'], '_extra_product_fields', true );
     123    function exprdawc_display_fields_on_cart_and_checkout( $item_data, $cart_item ) {
     124
     125        $product = wc_get_product( $cart_item['product_id'] );
     126        if ( ! $product ) {
     127            return $item_data;
     128        }
     129
     130        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    121131
    122132        if ( ! empty( $custom_fields ) ) {
    123             foreach ( $custom_fields as $index => $field ) {
    124                 $field_key = 'extra_user_data_' . $index;
    125                 if ( isset( $cart_item[ $field_key ] ) ) {
    126                     $item_data[] = array(
    127                         'key'     => esc_html( $field['label'] ),
    128                         'value'   => wc_clean( $cart_item[ $field_key ] ),
    129                         'display' => wc_clean( $cart_item[ $field_key ] ),
    130                     );
     133            if ( ( is_cart() && get_option( 'exprdawc_show_in_cart', 'yes' ) === 'yes' ) || ( is_checkout() && get_option( 'exprdawc_show_in_checkout', 'yes' ) === 'yes' ) ) {
     134                foreach ( $custom_fields as $index => $field ) {
     135                    $field_key = 'extra_user_data_' . $index;
     136                    if ( isset( $cart_item[ $field_key ] ) ) {
     137                        $item_data[] = array(
     138                            'key'     => esc_html( $field['label'] ),
     139                            'value'   => wc_clean( $cart_item[ $field_key ] ),
     140                            'display' => wc_clean( $cart_item[ $field_key ] ),
     141                        );
     142                    }
    131143                }
    132144            }
  • extra-product-data-for-woocommerce/tags/1.7.0/src/classes/class-exprdawc-overview-order.php

    r3202511 r3206929  
    6262     */
    6363    function exprdawc_add_custom_field_to_order( $item, $cart_item_key, $values, $order ) {
    64         $custom_fields = get_post_meta( $item->get_product_id(), '_extra_product_fields', true );
    6564
     65        $product = $item->get_product();
     66        if ( ! $product ) {
     67            return;
     68        }
     69
     70        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    6671        if ( ! empty( $custom_fields ) ) {
    6772            foreach ( $custom_fields as $index => $field ) {
  • extra-product-data-for-woocommerce/tags/1.7.0/src/classes/class-exprdawc-product-page-backend.php

    r3204687 r3206929  
    7979     */
    8080    public function exprdawc_add_custom_product_fields() {
    81         $custom_fields = get_post_meta( get_the_ID(), '_extra_product_fields', true );
     81        global $post;
     82        $product       = wc_get_product( $post );
     83        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    8284        include EXPRDAWC_TEMPLATES . 'html-tab-extra-attributes.php';
    8385    }
     
    195197                'conditionals_description'             => esc_html__( 'Only show this field when conditional rules are true.', 'extra-product-data-for-woocommerce' ),
    196198                'pleaseSaveBeforeExportMsg'            => esc_html__( 'Please save your changes before exporting.', 'extra-product-data-for-woocommerce' ),
     199                'enable_editable'                      => esc_html__( 'User can edit the field afterwards', 'extra-product-data-for-woocommerce' ),
    197200            )
    198201        );
     
    210213        // Check if extra product fields are set.
    211214        if ( isset( $_POST['extra_product_fields'] ) ) {
     215
     216            $product = wc_get_product( $post_id );
    212217
    213218            // UNSLASH: Remove slashes from the input data
     
    227232                    $autofocus         = isset( $field['autofocus'] ) ? true : false;
    228233                    $index             = isset( $field['index'] ) ? absint( $field['index'] ) : 0;
     234                    $editable          = isset( $field['editable'] ) ? true : false;
    229235
    230236                    // Conditional Logic
     
    294300                        'conditional_rules' => $conditional_logic_rules,
    295301                        'index'             => $index,
     302                        'editable'          => $editable,
    296303                    );
    297304                },
     
    302309            $custom_fields = array_filter( $custom_fields );
    303310
    304             // Save the sanitized and validated data
    305             update_post_meta( $post_id, '_extra_product_fields', $custom_fields );
     311            // Save the custom fields to the product
     312            $product->update_meta_data( '_extra_product_fields', $custom_fields );
     313
     314            // Save the product
     315            $product->save();
    306316        }
    307317    }
     
    349359
    350360        // Save the sanitized and validated data
    351         update_post_meta( $product_id, '_extra_product_fields', $custom_fields );
     361        $product->update_meta_data( '_extra_product_fields', $custom_fields );
     362
     363        // Save the product
     364        $product->save();
    352365
    353366        // Return success message.
  • extra-product-data-for-woocommerce/tags/1.7.0/src/classes/class-exprdawc-product-page-fronted.php

    r3202511 r3206929  
    9595    function exprdawc_display_custom_fields_on_product_page() {
    9696        global $product;
    97         $custom_fields = get_post_meta( $product->get_id(), '_extra_product_fields', true );
     97        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    9898
    9999        if ( ! empty( $custom_fields ) ) {
     
    123123     */
    124124    function exprdawc_validate_custom_fields( $passed, $product_id, $quantity ) {
    125         $custom_fields = get_post_meta( $product_id, '_extra_product_fields', true );
     125
     126        $product = wc_get_product( $product_id );
     127        if ( ! $product ) {
     128            return $passed;
     129        }
     130        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    126131
    127132        if ( ! empty( $custom_fields ) ) {
  • extra-product-data-for-woocommerce/tags/1.7.0/src/templates/view/fields/checkbox.php

    r3202511 r3206929  
    4949    }
    5050    if ( ! empty( $field_args['description'] ) ) {
    51         echo '<span id="' . esc_attr( $field_args['id'] ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
     51        echo '<span id="' . esc_attr( $field_id_raw ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
    5252    }
    5353}
  • extra-product-data-for-woocommerce/tags/1.7.0/src/templates/view/fields/radio.php

    r3202511 r3206929  
    4646    }
    4747    if ( ! empty( $field_args['description'] ) ) {
    48         echo '<span id="' . esc_attr( $field_args['id'] ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
     48        echo '<span id="' . esc_attr( $field_id_raw ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
    4949    }
    5050}
  • extra-product-data-for-woocommerce/tags/1.7.0/src/templates/view/fields/select.php

    r3202511 r3206929  
    4141    echo '</select>';
    4242    if ( ! empty( $field_args['description'] ) ) {
    43         echo '<span id="' . esc_attr( $field_args['id'] ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
     43        echo '<span id="' . esc_attr( $field_id_raw ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
    4444    }
    4545}
  • extra-product-data-for-woocommerce/tags/1.7.0/src/templates/view/fields/text.php

    r3202511 r3206929  
    3939
    4040if ( ! empty( $field_args['description'] ) ) {
    41     echo '<span id="' . esc_attr( $field_args['id'] ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
     41    echo '<span id="' . esc_attr( $field_id_raw ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
    4242}
    4343echo '</span>';
  • extra-product-data-for-woocommerce/tags/1.7.0/src/templates/view/fields/textarea.php

    r3202511 r3206929  
    4141    '</textarea>';
    4242if ( ! empty( $field_args['description'] ) ) {
    43     echo '<span id="' . esc_attr( $field_args['id'] ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
     43    echo '<span id="' . esc_attr( $field_id_raw ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
    4444}
    4545echo '</span>';
  • extra-product-data-for-woocommerce/tags/1.7.0/src/templates/view/html-tab-extra-attributes-fields.php

    r3202511 r3206929  
    6969                                    <input type="checkbox" id="exprdawc_text_autofocus_<?php echo esc_html( $index ); ?>" class="exprdawc_input exprdawc_checkbox exprdawc_autocomplete_field checkbox" name="extra_product_fields[<?php echo esc_html( $index ); ?>][autofocus]" value="1" <?php echo checked( 1, $field['autofocus'] ?? 0, false ); ?> />
    7070                                    <?php esc_html_e( 'Autofocus this field on product page', 'extra-product-data-for-woocommerce' ); ?>
     71                                </label>
     72                                <label class="exprdawc_label" for="exprdawc_text_editable_<?php echo esc_html( $index ); ?>">
     73                                    <input type="checkbox" id="exprdawc_text_editable_<?php echo esc_html( $index ); ?>" class="exprdawc_input exprdawc_checkbox exprdawc_editable_field checkbox" name="extra_product_fields[<?php echo esc_html( $index ); ?>][editable]" value="1" <?php echo checked( 1, $field['editable'] ?? 0, false ); ?> />
     74                                    <?php esc_html_e( 'User can edit the field afterwards', 'extra-product-data-for-woocommerce' ); ?>
    7175                                </label>
    7276                                <!-- Enable Conditional Logic and show table -->
  • extra-product-data-for-woocommerce/trunk/CHANGELOG.md

    r3204699 r3206929  
     1# [1.6.0](https://git.triopsi.dev/triopsi/extra-product-data-for-woocommerce/compare/v1.5.1...v1.6.0) (2024-12-09)
     2
     3
     4### Features
     5
     6* add setting page and add options for "Show on Cart" and "Show on Checkout" ([80a68f2](https://git.triopsi.dev/triopsi/extra-product-data-for-woocommerce/commit/80a68f2ee47a7a04c179f819bb64474f3beec4a4))
     7
     8## [1.5.1](https://git.triopsi.dev/triopsi/extra-product-data-for-woocommerce/compare/v1.5.0...v1.5.1) (2024-12-09)
     9
     10
     11### Bug Fixes
     12
     13* edit button dont visible on order overview ([3276eb3](https://git.triopsi.dev/triopsi/extra-product-data-for-woocommerce/commit/3276eb306b338cb307f95b97b71433b350926efd))
     14
    115# [1.5.0](https://git.triopsi.dev/triopsi/extra-product-data-for-woocommerce/compare/v1.4.1...v1.5.0) (2024-12-09)
    216
  • extra-product-data-for-woocommerce/trunk/assets/css/admin-backend.css

    r3203398 r3206929  
    1 #extra-product-data{padding:10px}table.exprdawc_attribute_table td{vertical-align:middle!important}table.exprdawc_attribute_table td.exprdawc_attribute_require_checkbox label{padding-top:15px}table.exprdawc_field_table{border-collapse:collapse;width:100%}table.exprdawc_field_table tr:nth-child(2n){background-color:#f9f9f9}table.exprdawc_field_table tr.exprdawc_fields_wrapper{border-bottom:1px solid #ddd}table.exprdawc_field_table tr.exprdawc_fields_wrapper:hover{background-color:#f1f1f1}table.exprdawc_field_table tr.exprdawc_fields_wrapper:last-child{border-bottom:none}table.exprdawc_field_table td{padding:0}table.exprdawc_field_table tfoot tr{background-color:#f5f5f5;border:1px solid #ccc}table.exprdawc_field_table tfoot td{padding:10px;text-align:center;vertical-align:middle}table.exprdawc_field_table tfoot .button{line-height:13px;padding:5px}table.exprdawc_fields_table{border-collapse:collapse;width:100%}table.exprdawc_fields_table tr{border:0}table.exprdawc_fields_table tbody td{padding:10px;vertical-align:middle}table.exprdawc_fields_table tbody td input[type=number],table.exprdawc_fields_table tbody td input[type=text],table.exprdawc_fields_table tbody td select,table.exprdawc_fields_table tbody td textarea{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;padding:5px;width:100%}table.exprdawc_fields_table tbody td select{text-overflow:ellipsis}table.exprdawc_fields_table tbody td button.add_rule,table.exprdawc_fields_table tbody td button.exprdawc_remove_custom_field,table.exprdawc_fields_table tbody td button.remove_rule{line-height:13px;padding:5px}table.exprdawc_fields_table tbody td.move i{cursor:move}table.exprdawc_fields_table tbody td.cl-arr i{cursor:pointer}table.exprdawc_settings_table{width:100%}table.exprdawc_settings_table label.exprdawc_label{align-items:center;display:flex;float:none;margin:5px 0;padding:0;text-align:left;width:auto}table.exprdawc_settings_table label.exprdawc_label .checkbox{margin-right:5px!important}table.exprdawc_settings_table td{padding:10px;vertical-align:middle}table.exprdawc_options_table{border:1px solid #ccc;border-collapse:collapse;margin-top:10px;width:100%}table.exprdawc_options_table td,table.exprdawc_options_table th{border-bottom:1px solid #ddd;padding:10px;text-align:left}table.exprdawc_options_table th{background-color:#f1f1f1}table.exprdawc_options_table tr:hover{background-color:#f9f9f9}table.exprdawc_options_table .button{background-color:#0073aa;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:5px 10px}table.exprdawc_options_table .button:hover{background-color:#005a87;color:#fff}.exprdawc_attribute h3 .sort{cursor:move;float:right;font-size:15px;font-weight:400;height:26px;margin-right:.5em;text-align:center;vertical-align:middle;width:17px}.exprdawc_attribute h3 .sort:before{color:#999;content:"\f333";display:block;float:left;font-family:Dashicons;height:100%;line-height:28px;text-align:center;width:17px}.exprdawc_attribute h3 .sort:hover:before{color:#777}.exprdawc_attribute h3:hover .sort,.exprdawc_attribute.ui-sortable-helper .sort{visibility:visible}.exprdawc_attribute.wc-metabox.postbox{border-left:0;border-right:0;border-top:0}.exprdawc_panel{display:block}.exprdawc_panel h2{font-size:1.2em!important;padding:0 0 10px!important}.exprdawc_panel .wc-metabox{background:#fff;border-bottom:1px solid #eee;margin:0!important}.exprdawc_panel .wc-metabox.exprdawc_attribute h3{cursor:pointer;padding:.5em .75em .5em 1em!important}.exprdawc_panel .wc-metabox.exprdawc_attribute h3 .sort,.exprdawc_panel .wc-metabox.exprdawc_attribute h3 a.delete,.exprdawc_panel .wc-metabox.exprdawc_attribute h3 a.edit{margin-top:.25em}#woocommerce-coupon-data ul.wc-tabs li.custom_fields_options a:before,#woocommerce-product-data ul.wc-tabs li.custom_fields_options a:before,.woocommerce ul.wc-tabs li.custom_fields_options a:before{content:"\f163";font-family:Dashicons}.exprdawc_conditional_logic_table{border-collapse:collapse;margin-bottom:20px;width:100%}.exprdawc_conditional_logic_table td,.exprdawc_conditional_logic_table th{border:1px solid #ddd;padding:10px;text-align:left}.exprdawc_conditional_logic_table th{background-color:#f9f9f9;font-weight:700}.exprdawc_conditional_logic_table .exprdawc_label{display:block;font-weight:700;margin-bottom:5px}.exprdawc_conditional_logic_table .exprdawc_input{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;padding:5px;width:100%}.exprdawc_conditional_logic_table .exprdawc_checkbox{width:auto}.exprdawc_conditional_logic_table .exprdawc_textarea{border:1px solid #ccc;border-radius:4px;padding:8px;width:100%}.exprdawc_conditional_logic_table .exprdawc_no_entry_message{color:#a00;font-weight:700}.exprdawc_conditional_logic_table h2{text-align:left;text-transform:uppercase}.exprdawc_conditional_logic_table .exprdawc_rule_group{background-color:#f9f9f9;border:1px solid #ddd;border-radius:4px;margin-bottom:10px;padding:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .exprdawc_rule{align-items:center;display:flex;margin-bottom:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .exprdawc_rule .exprdawc_input{margin-right:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .exprdawc_rule .button{margin-left:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .add_rule_group{margin-top:10px}.exprdawc_no_entry_message{display:block;margin:10px 0 0;padding-bottom:1em;padding-top:75px;position:relative;text-align:center}.exprdawc_no_entry_message:before{color:#eee;content:"\f163";font-family:Dashicons;font-size:70px;left:50%;position:absolute;top:0;transform:translateX(-50%)}p.exprdawc_toolbar{align-items:center;background-color:#f5f5f5;border:1px solid #ccc;display:flex;justify-content:center;text-align:center}a.exprdawc-export,a.exprdawc-import{color:#0073aa;font-size:small;margin:0 5px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}a.exprdawc-export:before,a.exprdawc-import:before{font-family:Dashicons;margin-right:5px;position:relative}a.exprdawc-export:hover,a.exprdawc-import:hover{color:#005a87;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}a.exprdawc-export:before{content:"\f346"}a.exprdawc-import:before{content:"\f342"}
     1#extra-product-data{padding:10px}table.exprdawc_attribute_table td{vertical-align:middle!important}table.exprdawc_attribute_table td.exprdawc_attribute_require_checkbox label{padding-top:15px}table.exprdawc_field_table{border-collapse:collapse;width:100%}table.exprdawc_field_table tr:nth-child(2n){background-color:#f9f9f9}table.exprdawc_field_table tr.exprdawc_fields_wrapper{border-bottom:1px solid #ddd}table.exprdawc_field_table tr.exprdawc_fields_wrapper:hover{background-color:#f1f1f1}table.exprdawc_field_table tr.exprdawc_fields_wrapper:last-child{border-bottom:none}table.exprdawc_field_table td{padding:0}table.exprdawc_field_table tfoot tr{background-color:#f5f5f5;border:1px solid #ccc}table.exprdawc_field_table tfoot td{padding:10px;text-align:center;vertical-align:middle}table.exprdawc_field_table tfoot .button{line-height:13px;padding:5px}table.exprdawc_fields_table{border-collapse:collapse;width:100%}table.exprdawc_fields_table tr{border:0}table.exprdawc_fields_table tbody td{padding:10px;vertical-align:middle}table.exprdawc_fields_table tbody td input[type=number],table.exprdawc_fields_table tbody td input[type=text],table.exprdawc_fields_table tbody td select,table.exprdawc_fields_table tbody td textarea{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;padding:5px;width:100%}table.exprdawc_fields_table tbody td select{text-overflow:ellipsis}table.exprdawc_fields_table tbody td button.add_rule,table.exprdawc_fields_table tbody td button.exprdawc_remove_custom_field,table.exprdawc_fields_table tbody td button.remove_rule{line-height:13px;padding:5px}table.exprdawc_fields_table tbody td.move i{cursor:move}table.exprdawc_fields_table tbody td.cl-arr i{cursor:pointer}table.exprdawc_settings_table{width:100%}table.exprdawc_settings_table label.exprdawc_label{align-items:center;display:flex;float:none;margin:5px 0;padding:0;text-align:left;width:auto}table.exprdawc_settings_table label.exprdawc_label .checkbox{margin-right:5px!important}table.exprdawc_settings_table td{padding:10px;vertical-align:middle}table.exprdawc_options_table{border:1px solid #ccc;border-collapse:collapse;margin-top:10px;width:100%}table.exprdawc_options_table td,table.exprdawc_options_table th{border-bottom:1px solid #ddd;padding:10px;text-align:left}table.exprdawc_options_table th{background-color:#f1f1f1}table.exprdawc_options_table tr:hover{background-color:#f9f9f9}table.exprdawc_options_table .button{background-color:#0073aa;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:5px 10px}table.exprdawc_options_table .button:hover{background-color:#005a87;color:#fff}.exprdawc_attribute h3 .sort{cursor:move;float:right;font-size:15px;font-weight:400;height:26px;margin-right:.5em;text-align:center;vertical-align:middle;width:17px}.exprdawc_attribute h3 .sort:before{color:#999;content:"";display:block;float:left;font-family:Dashicons;height:100%;line-height:28px;text-align:center;width:17px}.exprdawc_attribute h3 .sort:hover:before{color:#777}.exprdawc_attribute h3:hover .sort,.exprdawc_attribute.ui-sortable-helper .sort{visibility:visible}.exprdawc_attribute.wc-metabox.postbox{border-left:0;border-right:0;border-top:0}.exprdawc_panel{display:block}.exprdawc_panel h2{font-size:1.2em!important;padding:0 0 10px!important}.exprdawc_panel .wc-metabox{background:#fff;border-bottom:1px solid #eee;margin:0!important}.exprdawc_panel .wc-metabox.exprdawc_attribute h3{cursor:pointer;padding:.5em .75em .5em 1em!important}.exprdawc_panel .wc-metabox.exprdawc_attribute h3 .sort,.exprdawc_panel .wc-metabox.exprdawc_attribute h3 a.delete,.exprdawc_panel .wc-metabox.exprdawc_attribute h3 a.edit{margin-top:.25em}#woocommerce-coupon-data ul.wc-tabs li.custom_fields_options a:before,#woocommerce-product-data ul.wc-tabs li.custom_fields_options a:before,.woocommerce ul.wc-tabs li.custom_fields_options a:before{content:"";font-family:Dashicons}.exprdawc_conditional_logic_table{border-collapse:collapse;margin-bottom:20px;width:100%}.exprdawc_conditional_logic_table td,.exprdawc_conditional_logic_table th{border:1px solid #ddd;padding:10px;text-align:left}.exprdawc_conditional_logic_table th{background-color:#f9f9f9;font-weight:700}.exprdawc_conditional_logic_table .exprdawc_label{display:block;font-weight:700;margin-bottom:5px}.exprdawc_conditional_logic_table .exprdawc_input{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;padding:5px;width:100%}.exprdawc_conditional_logic_table .exprdawc_checkbox{width:auto}.exprdawc_conditional_logic_table .exprdawc_textarea{border:1px solid #ccc;border-radius:4px;padding:8px;width:100%}.exprdawc_conditional_logic_table .exprdawc_no_entry_message{color:#a00;font-weight:700}.exprdawc_conditional_logic_table h2{text-align:left;text-transform:uppercase}.exprdawc_conditional_logic_table .exprdawc_rule_group{background-color:#f9f9f9;border:1px solid #ddd;border-radius:4px;margin-bottom:10px;padding:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .exprdawc_rule{align-items:center;display:flex;margin-bottom:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .exprdawc_rule .exprdawc_input{margin-right:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .exprdawc_rule .button{margin-left:10px}.exprdawc_conditional_logic_table .exprdawc_rule_group .add_rule_group{margin-top:10px}.exprdawc_no_entry_message{display:block;margin:10px 0 0;padding-bottom:1em;padding-top:75px;position:relative;text-align:center}.exprdawc_no_entry_message:before{color:#eee;content:"";font-family:Dashicons;font-size:70px;left:50%;position:absolute;top:0;transform:translateX(-50%)}p.exprdawc_toolbar{align-items:center;background-color:#f5f5f5;border:1px solid #ccc;display:flex;justify-content:center;text-align:center}a.exprdawc-export,a.exprdawc-import{color:#0073aa;font-size:small;margin:0 5px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}a.exprdawc-export:before,a.exprdawc-import:before{font-family:Dashicons;margin-right:5px;position:relative}a.exprdawc-export:hover,a.exprdawc-import:hover{color:#005a87;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}a.exprdawc-export:before{content:""}a.exprdawc-import:before{content:""}
  • extra-product-data-for-woocommerce/trunk/assets/js/wc-meta-boxes-product.js

    r3203398 r3206929  
    11/*! For license information please see wc-meta-boxes-product.js.LICENSE.txt */
    2 (()=>{var e,t={976:()=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){for(var a=0;a<t.length;a++){var o=t[a];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,n(o.key),o)}}function n(t){var n=function(t,n){if("object"!=e(t)||!t)return t;var a=t[Symbol.toPrimitive];if(void 0!==a){var o=a.call(t,n||"default");if("object"!=e(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(t)}(t,"string");return"symbol"==e(n)?n:n+""}jQuery((function(e){new(function(){return n=function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.fieldIndex=e("#exprdawc_field_body tr.exprdawc_attribute").length,this.isDirty=!1,this.init()},a=[{key:"init",value:function(){this.bindEvents(),this.noEntryContent()}},{key:"bindEvents",value:function(){e("#exprdawc_add_custom_field").on("click",this.addCustomField.bind(this)),e(document).on("click",".exprdawc_remove_custom_field",this.removeCustomField.bind(this)),e(document).on("change",".exprdawc_attribute_type",this.toggleOptions.bind(this)),e(document).on("click",".toggle-options",this.toggleOptionsTable.bind(this)),e(document).on("click",".add_option",this.addOption.bind(this)),e(document).on("click",".remove_option",this.removeOption.bind(this)),e(document).on("click","a.exprdawc-export",this.exportContent.bind(this)),e(document).on("click","a.exprdawc-import",this.importContent.bind(this)),e(document).on("change",".exprdawc_input",this.setDirty.bind(this)),e(document).on("change",".exprdawc_autocomplete_field",this.checkAutocompleteField.bind(this)),e(document).on("click",".add_rule_group",this.addRuleGroup.bind(this)),e(document).on("click",".add_rule",this.addRule.bind(this)),e(document).on("click",".remove_rule",this.removeRule.bind(this)),e(document).on("change",".exprdawc_conditional_operator",this.toggleConditionalValueField.bind(this)),e(document).on("change",".exprdawc_conditional_logic_field",this.toggleConditionalTable.bind(this)),this.toggleConditionalValueFieldAll(),e(".exprdawc_field_table tbody").sortable({items:"tr.exprdawc_fields_wrapper",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")}}),e(document).on("mouseenter",".exprdawc_options_table tbody",(function(){e(this).sortable({items:"tr",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")}})})),e("#exprdawc_attribute_container").on("input",".exprdawc_attribute .exprdawc_attribute_input_name input",(function(){var t=e(this).val(),n=e(this).closest(".exprdawc_attribute").find(".attribute_name");t&&n.text(t)}))}},{key:"addCustomField",value:function(){this.fieldIndex++,this.setDirty(),e("#exprdawc_field_body").append('\n                <tr class="exprdawc_fields_wrapper">\n                <td colspan="5">\n                <table class="exprdawc_fields_table" data-index="'.concat(this.fieldIndex,'">\n\t                <tbody>\n                        <tr class="exprdawc_attribute">\n                            <td class="move"><i class="dashicons dashicons-move"></i></td>\n                            <td class="cl-arr"><i class="dashicons dashicons-arrow-up toggle-options"></i></td>\n                            <td class="exprdawc_attribute_input_name">\n                                <input type="text" name="extra_product_fields[').concat(this.fieldIndex,'][label]" placeholder="').concat(exprdawc_admin_meta_boxes.label_placeholder,'" />\n                            </td>\n                            <td>\n                                <select id="exprdawc_attribute_type_').concat(this.fieldIndex,'" name="extra_product_fields[').concat(this.fieldIndex,'][type]" class="exprdawc_attribute_type">\n                                    <option value="text">').concat(exprdawc_admin_meta_boxes.short_text,'</option>\n                                    <option value="long_text">').concat(exprdawc_admin_meta_boxes.long_text,'</option>\n                                    <option value="email">').concat(exprdawc_admin_meta_boxes.email,'</option>\n                                    <option value="number">').concat(exprdawc_admin_meta_boxes.number,'</option>\n                                    <option value="date">').concat(exprdawc_admin_meta_boxes.date,'</option>\n                                    <option value="yes-no">').concat(exprdawc_admin_meta_boxes.yes_no,'</option>\n                                    <option value="radio">').concat(exprdawc_admin_meta_boxes.radio,'</option>\n                                    <option value="checkbox">').concat(exprdawc_admin_meta_boxes.checkbox,'</option>\n                                    <option value="select">').concat(exprdawc_admin_meta_boxes.select,'</option>\n                                </select>\n                            </td>\n                            <td>\n                                <button type="button" class="exprdawc_remove_custom_field button"><i class="dashicons dashicons-trash"></i></button>\n                                <input type="hidden" class="exprdawc_attribute_index" name="extra_product_fields[').concat(this.fieldIndex,'][index]" value="').concat(this.fieldIndex,'"/>\n                            </td>\n                        </tr>\n                        <tr class="exprdawc_options" style="display: none;">\n                            <td colspan="5">\n\n                                <table class="exprdawc_settings_table exprdawc_general_table">\n                                    <tbody>\n\n                                        \x3c!-- Text Area Option/Settings --\x3e\n                                        <tr>\n                                            <td class="exprdawc_attribute_require_checkbox">\n                                                <label class="exprdawc_label" for="exprdawc_text_required_').concat(this.fieldIndex,'">\n                                                    <input type="checkbox" id="exprdawc_text_required_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[').concat(this.fieldIndex,'][required]" value="1" />\n                                                    ').concat(exprdawc_admin_meta_boxes.require_input,'\n                                                </label>                                       \n                                                <label class="exprdawc_label" for="exprdawc_text_autofocus_').concat(this.fieldIndex,'">\n                                                    <input type="checkbox" id="exprdawc_text_autofocus_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[').concat(this.fieldIndex,'][autofocus]" value="1" />\n                                                    ').concat(exprdawc_admin_meta_boxes.enable_autofocus,'\n                                                </label>\n\n                                                \x3c!-- Enable Conditional Logic and show table --\x3e\n                                                <label class="exprdawc_label" for="exprdawc_text_conditional_logic_').concat(this.fieldIndex,'">\n                                                    <input type="checkbox" id="exprdawc_text_conditional_logic_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_checkbox exprdawc_conditional_logic_field checkbox" name="extra_product_fields[').concat(this.fieldIndex,'][conditional_logic]" value="1" />\n                                                    ').concat(exprdawc_admin_meta_boxes.enable_conditional_logic,'\n                                                </label>\n                                            </td>\n                                            <td class="exprdawc_attribute_placeholder_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_placeholder_text_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.placeholder_text,'</label>\n                                                <input type="text" id="exprdawc_text_placeholder_text_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_textinput exprdawc_placeholder" name="extra_product_fields[').concat(this.fieldIndex,'][placeholder_text]" placeholder="').concat(exprdawc_admin_meta_boxes.placeholder_text,'" />\n                                            </td>\n                                            <td class="exprdawc_attribute_help_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_help_text_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.help_text,'</label>\n                                                <input type="text" id="exprdawc_text_help_text_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_textinput exprdawc_helptext" name="extra_product_fields[').concat(this.fieldIndex,'][help_text]" placeholder="').concat(exprdawc_admin_meta_boxes.help_text,'" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_autocomplete_function_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.autocomplete_function,'</label>\n                                                <select id="exprdawc_autocomplete_function_').concat(this.fieldIndex,'" name="extra_product_fields[').concat(this.fieldIndex,'][autocomplete]" class="exprdawc_input exprdawc_attribute_type">\n                                                    <option value="on">').concat(exprdawc_admin_meta_boxes.autocomplete_on,'</option>\n                                                    <option value="off">').concat(exprdawc_admin_meta_boxes.autocomplete_off,'</option>\n                                                    <option value="address-level1">').concat(exprdawc_admin_meta_boxes.address_level1,'</option>\n                                                    <option value="address-level2">').concat(exprdawc_admin_meta_boxes.address_level2,'</option>\n                                                    <option value="address-level3">').concat(exprdawc_admin_meta_boxes.address_level3,'</option>\n                                                    <option value="address-level4">').concat(exprdawc_admin_meta_boxes.address_level4,'</option>\n                                                    <option value="address-line1">').concat(exprdawc_admin_meta_boxes.address_line1,'</option>\n                                                    <option value="address-line2">').concat(exprdawc_admin_meta_boxes.address_line2,'</option>\n                                                    <option value="address-line3">').concat(exprdawc_admin_meta_boxes.address_line3,'</option>\n                                                    <option value="bday">').concat(exprdawc_admin_meta_boxes.bday,'</option>\n                                                    <option value="bday-day">').concat(exprdawc_admin_meta_boxes.bday_day,'</option>\n                                                    <option value="bday-month">').concat(exprdawc_admin_meta_boxes.bday_month,'</option>\n                                                    <option value="bday-year">').concat(exprdawc_admin_meta_boxes.bday_year,'</option>\n                                                    <option value="cc-additional-name">').concat(exprdawc_admin_meta_boxes.cc_additional_name,'</option>\n                                                    <option value="cc-csc">').concat(exprdawc_admin_meta_boxes.cc_csc,'</option>\n                                                    <option value="cc-exp">').concat(exprdawc_admin_meta_boxes.cc_exp,'</option>\n                                                    <option value="cc-exp-month">').concat(exprdawc_admin_meta_boxes.cc_exp_month,'</option>\n                                                    <option value="cc-exp-year">').concat(exprdawc_admin_meta_boxes.cc_exp_year,'</option>\n                                                    <option value="cc-family-name">').concat(exprdawc_admin_meta_boxes.cc_family_name,'</option>\n                                                    <option value="cc-given-name">').concat(exprdawc_admin_meta_boxes.cc_given_name,'</option>\n                                                    <option value="cc-name">').concat(exprdawc_admin_meta_boxes.cc_name,'</option>\n                                                    <option value="cc-number">').concat(exprdawc_admin_meta_boxes.cc_number,'</option>\n                                                    <option value="cc-type">').concat(exprdawc_admin_meta_boxes.cc_type,'</option>\n                                                    <option value="country">').concat(exprdawc_admin_meta_boxes.country,'</option>\n                                                    <option value="country-name">').concat(exprdawc_admin_meta_boxes.country_name,'</option>\n                                                    <option value="email">').concat(exprdawc_admin_meta_boxes.email,'</option>\n                                                    <option value="language">').concat(exprdawc_admin_meta_boxes.language,'</option>\n                                                    <option value="photo">').concat(exprdawc_admin_meta_boxes.photo,'</option>\n                                                    <option value="postal-code">').concat(exprdawc_admin_meta_boxes.postal_code,'</option>\n                                                    <option value="sex">').concat(exprdawc_admin_meta_boxes.sex,'</option>\n                                                    <option value="street-address">').concat(exprdawc_admin_meta_boxes.street_address,'</option>\n                                                    <option value="tel">').concat(exprdawc_admin_meta_boxes.tel,'</option>\n                                                    <option value="tel-area-code">').concat(exprdawc_admin_meta_boxes.tel_area_code,'</option>\n                                                    <option value="tel-country-code">').concat(exprdawc_admin_meta_boxes.tel_country_code,'</option>\n                                                    <option value="tel-extension">').concat(exprdawc_admin_meta_boxes.tel_extension,'</option>\n                                                    <option value="tel-local">').concat(exprdawc_admin_meta_boxes.tel_local,'</option>\n                                                    <option value="tel-local-prefix">').concat(exprdawc_admin_meta_boxes.tel_local_prefix,'</option>\n                                                    <option value="tel-local-suffix">').concat(exprdawc_admin_meta_boxes.tel_local_suffix,'</option>\n                                                    <option value="tel-national">').concat(exprdawc_admin_meta_boxes.tel_national,'</option>\n                                                    <option value="transaction-amount">').concat(exprdawc_admin_meta_boxes.transaction_amount,'</option>\n                                                    <option value="transaction-currency">').concat(exprdawc_admin_meta_boxes.transaction_currency,'</option>\n                                                    <option value="url">').concat(exprdawc_admin_meta_boxes.url,'</option>\n                                                </select>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                                <hr>\n\n                                \x3c!-- Conditional Logic --\x3e\n\t\t\t\t                <table class="exprdawc_settings_table exprdawc_conditional_logic_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                           <td colspan="3">\n                                                <label class="exprdawc_label">').concat(exprdawc_admin_meta_boxes.conditionals,"</label>\n\t\t\t\t\t\t\t\t                <p>").concat(exprdawc_admin_meta_boxes.conditionals_description,'</p>\n                                                <div class="exprdawc_conditional_rules">\n                                                    <div class="exprdawc_rule_group_container">\n                                                        <div class="exprdawc_rule_group">\n                                                            <div class="exprdawc_rule">\n                                                                <select name="extra_product_fields[').concat(this.fieldIndex,'][conditional_rules][0][0][field]" class="exprdawc_input exprdawc_conditional_field">\n                                                                <option value="">').concat(exprdawc_admin_meta_boxes.selectFieldNone,"</option>\n                                                                ").concat(this.getAllFieldsOptions(),'\n                                                                </select>\n                                                                <select name="extra_product_fields[').concat(this.fieldIndex,'][conditional_rules][0][0][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                                                                    <option value="field_is_empty">').concat(exprdawc_admin_meta_boxes.field_is_empty,'</option>\n                                                                    <option value="field_is_not_empty">').concat(exprdawc_admin_meta_boxes.field_is_not_empty,'</option>\n                                                                    <option value="equals">').concat(exprdawc_admin_meta_boxes.equals,'</option>\n                                                                    <option value="not_equals">').concat(exprdawc_admin_meta_boxes.notEquals,'</option>\n                                                                    <option value="greater_than">').concat(exprdawc_admin_meta_boxes.greaterThan,'</option>\n                                                                    <option value="less_than">').concat(exprdawc_admin_meta_boxes.lessThan,'</option>\n                                                                </select>\n                                                                <input type="text" name="extra_product_fields[').concat(this.fieldIndex,'][conditional_rules][0][0][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="').concat(exprdawc_admin_meta_boxes.enterValue,'" style="display:none;" />\n                                                                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                                                                <button type="button" class="button add_rule">').concat(exprdawc_admin_meta_boxes.and,'</button>\n                                                            </div>\n                                                        </div>\n                                                    </div>\n                                                </div>\n                                            </td>                                            \n                                        </tr>\n                                    </tbody>\n                                </table>\n\n\n                                \x3c!-- Text Area Option/Settings --\x3e\n                                <table class="exprdawc_settings_table exprdawc_long_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_rows_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.rows,'</label>\n                                                <input type="number" id="exprdawc_long_text_rows_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_long_text_rows" name="extra_product_fields[').concat(this.fieldIndex,'][rows]" value="2" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_cols_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.columns,'</label>\n                                                <input type="number" id="exprdawc_long_text_cols_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_long_text_cols" name="extra_product_fields[').concat(this.fieldIndex,'][cols]" value="5" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_default_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.default_value,'</label>\n                                                <textarea id="exprdawc_long_text_default_').concat(this.fieldIndex,'" class="exprdawc_textarea" rows="3" cols="30" placeholder="').concat(exprdawc_admin_meta_boxes.enter_default_text,'" name="extra_product_fields[').concat(this.fieldIndex,'][default]"></textarea>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                \x3c!-- Text Option/Settings --\x3e\n                                <table class="exprdawc_settings_table exprdawc_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_min_length_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.min_length,'</label>\n                                                <input type="number" id="exprdawc_text_min_length_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_text_min_length" name="extra_product_fields[').concat(this.fieldIndex,'][minlength]" value="0" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_max_length_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.max_length,'</label>\n                                                <input type="number" id="exprdawc_text_max_length_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_text_max_length" name="extra_product_fields[').concat(this.fieldIndex,'][maxlength]" value="255" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_default_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.default_value,'</label>\n                                                <input type="text" id="exprdawc_text_default_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_text_default" placeholder="').concat(exprdawc_admin_meta_boxes.enter_default_text,'" name="extra_product_fields[').concat(this.fieldIndex,'][default]" />\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                <table class="exprdawc_options_table" style="display:none;">\n                                    <thead>\n                                        <tr>\n                                            <th></th>\n                                            <th>').concat(exprdawc_admin_meta_boxes.option_label,"</th>\n                                            <th>").concat(exprdawc_admin_meta_boxes.option_value,"</th>\n                                            <th>").concat(exprdawc_admin_meta_boxes.default,"</th>\n                                            <th>").concat(exprdawc_admin_meta_boxes.action,'</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody>\n                                        \x3c!-- Options will be dynamically added here --\x3e\n                                    </tbody>\n                                    <tfoot>\n                                        <tr>\n                                            <td colspan="4">\n                                                <button type="button" class="button add_option">').concat(exprdawc_admin_meta_boxes.add_option,'</button>\n                                            </td>\n                                        </tr>\n                                    </tfoot>\n                                </table>\n                                <p class="exprdawc_no_entry_message" style="display: none;">').concat(exprdawc_admin_meta_boxes.no_options,"</p>\n                            </td>\n                        </tr>\n                    </tbody>\n                </table>\n                </td>\n                </tr>\n                ")),this.noEntryContent(),e("#exprdawc_attribute_type_"+this.fieldIndex).trigger("change")}},{key:"removeCustomField",value:function(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").next(".exprdawc_options").remove(),e(t.currentTarget).closest("tr").remove(),this.noEntryContent()),!1}},{key:"toggleOptions",value:function(t){this.setDirty();var n=e(t.currentTarget).closest("tr"),a=n.next(".exprdawc_options"),o=a.find(".exprdawc_options_table"),c=n.find(".exprdawc_placeholder");"radio"===e(t.currentTarget).val()||"checkbox"===e(t.currentTarget).val()||"select"===e(t.currentTarget).val()?(c.prop("disabled",!0),o.show()):(c.prop("disabled",!1),o.hide()),"long_text"===e(t.currentTarget).val()?a.find(".exprdawc_long_text_table").show():a.find(".exprdawc_long_text_table").hide(),"text"===e(t.currentTarget).val()||"email"===e(t.currentTarget).val()||"number"===e(t.currentTarget).val()||"date"===e(t.currentTarget).val()?a.find(".exprdawc_text_table").show():a.find(".exprdawc_text_table").hide()}},{key:"toggleOptionsTable",value:function(t){var n=e(t.currentTarget);n.closest("tr").next(".exprdawc_options").toggle(),n.toggleClass("dashicons-arrow-down dashicons-arrow-up")}},{key:"addOption",value:function(t){this.setDirty();var n=e(t.currentTarget).closest(".exprdawc_options_table"),a=n.find("tbody tr").length;n.find("tbody").append('\n                <tr>\n                    <td class="move"><i class="dashicons dashicons-move"></i></td>\n                    <td>\n                        <input type="text" name="extra_product_fields['.concat(this.fieldIndex,"][options][").concat(a,'][label]" placeholder="').concat(exprdawc_admin_meta_boxes.option_label_placeholder,'" />\n                    </td>\n                    <td>\n                        <input type="text" name="extra_product_fields[').concat(this.fieldIndex,"][options][").concat(a,'][value]" placeholder="').concat(exprdawc_admin_meta_boxes.option_value_placeholder,'" />\n                    </td>\n                    <td>\n                        <input type="radio" name="extra_product_fields[').concat(this.fieldIndex,'][default]" value="').concat(a,'" />\n                    </td>\n                    <td>\n                        <button type="button" class="button remove_option">').concat(exprdawc_admin_meta_boxes.remove,"</button>\n                    </td>\n                </tr>\n                ")),this.checkOptions(n.closest(".exprdawc_options"))}},{key:"removeOption",value:function(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").remove(),this.checkOptions(e(t.currentTarget).closest(".exprdawc_options"))),!1}},{key:"checkOptions",value:function(e){var t=e.find(".exprdawc_options_table tbody"),n=e.find(".exprdawc_no_entry_message");0===t.find("tr").length?n.show():n.hide()}},{key:"exportContent",value:function(t){if(t.preventDefault(),console.log("exportContent"),console.log(this.isDirty),this.isDirty)alert("".concat(exprdawc_admin_meta_boxes.pleaseSaveBeforeExportMsg));else{var n=e("#exprdawc_export_string").val();n?navigator.clipboard.writeText(n).then((function(){alert("".concat(exprdawc_admin_meta_boxes.copySuccessMsg))}),(function(e){console.error("Could not copy text: ",e),alert("".concat(exprdawc_admin_meta_boxes.copyErrorMsg))})):alert("".concat(exprdawc_admin_meta_boxes.emptyExportMsg))}}},{key:"importContent",value:function(t){t.preventDefault();var n=prompt(exprdawc_admin_meta_boxes.enterExportString);if(n){if(!confirm(exprdawc_admin_meta_boxes.sureImportQuestion))return;var a=e("#post_ID").val();e.ajax({url:ajaxurl,method:"POST",data:{action:"exprdawc_import_custom_fields",product_id:a,export_string:n,security:exprdawc_admin_meta_boxes.edit_exprdawc_nonce},success:function(e){e.success?(alert(exprdawc_admin_meta_boxes.importSuccessMsg),location.reload()):alert(exprdawc_admin_meta_boxes.importErrorMsg)},error:function(){alert(exprdawc_admin_meta_boxes.importErrorMsg)}})}}},{key:"setDirty",value:function(){this.isDirty=!0,this.disableExportLink()}},{key:"disableExportLink",value:function(){this.isDirty&&e(".exprdawc-export").hide()}},{key:"noEntryContent",value:function(){var t=e("#exprdawc_field_body .exprdawc_attribute").length,n=e(".exprdawc_no_entry_message"),a=e("#exprdatawc_table_header"),o=e(".exprdawc-export");t>0?(n.hide(),a.show(),o.show()):(n.show(),a.hide(),o.hide())}},{key:"checkAutocompleteField",value:function(t){var n=e(t.currentTarget);if(n.is(":checked")){var a=e(".exprdawc_autocomplete_field").not(n).filter(":checked");if(a.length>0){if(!confirm(exprdawc_admin_meta_boxes.sureAnotherAutocompleCheckedQuestion))return void n.prop("checked",!1);a.prop("checked",!1)}}}},{key:"addRuleGroup",value:function(t){var n=e(t.currentTarget).closest(".exprdawc_conditional_logic_table").find(".exprdawc_conditional_rules"),a=n.find(".exprdawc_rule_group").length,o=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),c=this.getRuleGroupHtml(o,a);n.append(c)}},{key:"addRule",value:function(t){var n=e(t.currentTarget).closest(".exprdawc_rule_group"),a=n.index(),o=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),c=n.find(".exprdawc_rule").length,i=this.getRuleHtml(o,a,c);n.append(i)}},{key:"getRuleGroupHtml",value:function(e,t){return'\n            <div class="exprdawc_rule_group_container">\n                <h2>'.concat(exprdawc_admin_meta_boxes.or,'</h2>\n                <div class="exprdawc_rule_group">\n                    ').concat(this.getRuleHtml(e,t,0),"\n                </div>\n            </div>\n            ")}},{key:"getRuleHtml",value:function(e,t,n){return'\n            <div class="exprdawc_rule">\n                <select name="extra_product_fields['.concat(e,"][conditional_rules][").concat(t,"][").concat(n,'][field]" class="exprdawc_input exprdawc_conditional_field">\n                <option value="">').concat(exprdawc_admin_meta_boxes.selectFieldNone,"</option>\n                ").concat(this.getAllFieldsOptions(),'\n                </select>\n                <select name="extra_product_fields[').concat(e,"][conditional_rules][").concat(t,"][").concat(n,'][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                    <option value="field_is_empty">').concat(exprdawc_admin_meta_boxes.field_is_empty,'</option>\n                    <option value="field_is_not_empty">').concat(exprdawc_admin_meta_boxes.field_is_not_empty,'</option>\n                    <option value="equals">').concat(exprdawc_admin_meta_boxes.equals,'</option>\n                    <option value="not_equals">').concat(exprdawc_admin_meta_boxes.notEquals,'</option>\n                    <option value="greater_than">').concat(exprdawc_admin_meta_boxes.greaterThan,'</option>\n                    <option value="less_than">').concat(exprdawc_admin_meta_boxes.lessThan,'</option>\n                </select>\n                <input type="text" name="extra_product_fields[').concat(e,"][conditional_rules][").concat(t,"][").concat(n,'][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="').concat(exprdawc_admin_meta_boxes.enterValue,'" style="display:none;" />\n                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                <button type="button" class="button add_rule">+ ').concat(exprdawc_admin_meta_boxes.and,"</button>\n            </div>\n            ")}},{key:"toggleConditionalValueField",value:function(t){var n=e(t.currentTarget),a=n.closest(".exprdawc_rule").find(".exprdawc_conditional_value");"field_changed"===n.val()||"field_is_empty"===n.val()||"field_is_not_empty"===n.val()?a.hide():a.show()}},{key:"toggleConditionalValueFieldAll",value:function(){var t=this;e(".exprdawc_conditional_operator").each((function(e,n){t.toggleConditionalValueField({currentTarget:n})}))}},{key:"removeRule",value:function(t){if(confirm(exprdawc_admin_meta_boxes.confirm_delete_rule)){var n=e(t.currentTarget).closest(".exprdawc_rule_group_container");e(t.currentTarget).closest(".exprdawc_rule").remove(),0===n.find(".exprdawc_rule").length&&n.remove()}return!1}},{key:"getAllFieldsOptions",value:function(){var t="";return e("#exprdawc_field_body tr.exprdawc_attribute").each((function(){var n=e(this).find(".exprdawc_attribute_input_name input").val();t+='<option value="'.concat(n,'">').concat(n,"</option>")})),t}},{key:"toggleConditionalTable",value:function(t){var n=e(t.currentTarget),a=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_conditional_logic_table");n.is(":checked")?a.show():a.hide()}}],a&&t(n.prototype,a),o&&t(n,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,a,o}())}))},989:()=>{},99:()=>{}},n={};function a(e){var o=n[e];if(void 0!==o)return o.exports;var c=n[e]={exports:{}};return t[e](c,c.exports,a),c.exports}a.m=t,e=[],a.O=(t,n,o,c)=>{if(!n){var i=1/0;for(_=0;_<e.length;_++){for(var[n,o,c]=e[_],d=!0,r=0;r<n.length;r++)(!1&c||i>=c)&&Object.keys(a.O).every((e=>a.O[e](n[r])))?n.splice(r--,1):(d=!1,c<i&&(i=c));if(d){e.splice(_--,1);var l=o();void 0!==l&&(t=l)}}return t}c=c||0;for(var _=e.length;_>0&&e[_-1][2]>c;_--)e[_]=e[_-1];e[_]=[n,o,c]},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={890:0,956:0,107:0};a.O.j=t=>0===e[t];var t=(t,n)=>{var o,c,[i,d,r]=n,l=0;if(i.some((t=>0!==e[t]))){for(o in d)a.o(d,o)&&(a.m[o]=d[o]);if(r)var _=r(a)}for(t&&t(n);l<i.length;l++)c=i[l],a.o(e,c)&&e[c]&&e[c][0](),e[c]=0;return a.O(_)},n=self.webpackChunkextra_product_data_for_woocommerce=self.webpackChunkextra_product_data_for_woocommerce||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),a.O(void 0,[956,107],(()=>a(976))),a.O(void 0,[956,107],(()=>a(989)));var o=a.O(void 0,[956,107],(()=>a(99)));o=a.O(o)})();
     2(()=>{var e,t={976:()=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,a(o.key),o)}}function a(t){var a=function(t,a){if("object"!=e(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,a||"default");if("object"!=e(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===a?String:Number)(t)}(t,"string");return"symbol"==e(a)?a:a+""}jQuery((function(e){new(function(){return a=function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.fieldIndex=e("#exprdawc_field_body tr.exprdawc_attribute").length,this.isDirty=!1,this.init()},n=[{key:"init",value:function(){this.bindEvents(),this.noEntryContent()}},{key:"bindEvents",value:function(){e("#exprdawc_add_custom_field").on("click",this.addCustomField.bind(this)),e(document).on("click",".exprdawc_remove_custom_field",this.removeCustomField.bind(this)),e(document).on("change",".exprdawc_attribute_type",this.toggleOptions.bind(this)),e(document).on("click",".toggle-options",this.toggleOptionsTable.bind(this)),e(document).on("click",".add_option",this.addOption.bind(this)),e(document).on("click",".remove_option",this.removeOption.bind(this)),e(document).on("click","a.exprdawc-export",this.exportContent.bind(this)),e(document).on("click","a.exprdawc-import",this.importContent.bind(this)),e(document).on("change",".exprdawc_input",this.setDirty.bind(this)),e(document).on("change",".exprdawc_autocomplete_field",this.checkAutocompleteField.bind(this)),e(document).on("click",".add_rule_group",this.addRuleGroup.bind(this)),e(document).on("click",".add_rule",this.addRule.bind(this)),e(document).on("click",".remove_rule",this.removeRule.bind(this)),e(document).on("change",".exprdawc_conditional_operator",this.toggleConditionalValueField.bind(this)),e(document).on("change",".exprdawc_conditional_logic_field",this.toggleConditionalTable.bind(this)),this.toggleConditionalValueFieldAll(),e(".exprdawc_field_table tbody").sortable({items:"tr.exprdawc_fields_wrapper",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")}}),e(document).on("mouseenter",".exprdawc_options_table tbody",(function(){e(this).sortable({items:"tr",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")}})})),e("#exprdawc_attribute_container").on("input",".exprdawc_attribute .exprdawc_attribute_input_name input",(function(){var t=e(this).val(),a=e(this).closest(".exprdawc_attribute").find(".attribute_name");t&&a.text(t)}))}},{key:"addCustomField",value:function(){this.fieldIndex++,this.setDirty(),e("#exprdawc_field_body").append('\n                <tr class="exprdawc_fields_wrapper">\n                <td colspan="5">\n                <table class="exprdawc_fields_table" data-index="'.concat(this.fieldIndex,'">\n\t                <tbody>\n                        <tr class="exprdawc_attribute">\n                            <td class="move"><i class="dashicons dashicons-move"></i></td>\n                            <td class="cl-arr"><i class="dashicons dashicons-arrow-up toggle-options"></i></td>\n                            <td class="exprdawc_attribute_input_name">\n                                <input type="text" name="extra_product_fields[').concat(this.fieldIndex,'][label]" placeholder="').concat(exprdawc_admin_meta_boxes.label_placeholder,'" />\n                            </td>\n                            <td>\n                                <select id="exprdawc_attribute_type_').concat(this.fieldIndex,'" name="extra_product_fields[').concat(this.fieldIndex,'][type]" class="exprdawc_attribute_type">\n                                    <option value="text">').concat(exprdawc_admin_meta_boxes.short_text,'</option>\n                                    <option value="long_text">').concat(exprdawc_admin_meta_boxes.long_text,'</option>\n                                    <option value="email">').concat(exprdawc_admin_meta_boxes.email,'</option>\n                                    <option value="number">').concat(exprdawc_admin_meta_boxes.number,'</option>\n                                    <option value="date">').concat(exprdawc_admin_meta_boxes.date,'</option>\n                                    <option value="yes-no">').concat(exprdawc_admin_meta_boxes.yes_no,'</option>\n                                    <option value="radio">').concat(exprdawc_admin_meta_boxes.radio,'</option>\n                                    <option value="checkbox">').concat(exprdawc_admin_meta_boxes.checkbox,'</option>\n                                    <option value="select">').concat(exprdawc_admin_meta_boxes.select,'</option>\n                                </select>\n                            </td>\n                            <td>\n                                <button type="button" class="exprdawc_remove_custom_field button"><i class="dashicons dashicons-trash"></i></button>\n                                <input type="hidden" class="exprdawc_attribute_index" name="extra_product_fields[').concat(this.fieldIndex,'][index]" value="').concat(this.fieldIndex,'"/>\n                            </td>\n                        </tr>\n                        <tr class="exprdawc_options" style="display: none;">\n                            <td colspan="5">\n\n                                <table class="exprdawc_settings_table exprdawc_general_table">\n                                    <tbody>\n\n                                        \x3c!-- Text Area Option/Settings --\x3e\n                                        <tr>\n                                            <td class="exprdawc_attribute_require_checkbox">\n                                                <label class="exprdawc_label" for="exprdawc_text_required_').concat(this.fieldIndex,'">\n                                                    <input type="checkbox" id="exprdawc_text_required_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[').concat(this.fieldIndex,'][required]" value="1" />\n                                                    ').concat(exprdawc_admin_meta_boxes.require_input,'\n                                                </label>                                       \n                                                <label class="exprdawc_label" for="exprdawc_text_autofocus_').concat(this.fieldIndex,'">\n                                                    <input type="checkbox" id="exprdawc_text_autofocus_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[').concat(this.fieldIndex,'][autofocus]" value="1" />\n                                                    ').concat(exprdawc_admin_meta_boxes.enable_autofocus,'\n                                                </label>\n                                                <label class="exprdawc_label" for="exprdawc_text_editable_').concat(this.fieldIndex,'">\n                                                    <input type="checkbox" id="exprdawc_text_editable_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_checkbox exprdawc_editable_field checkbox" name="extra_product_fields[').concat(this.fieldIndex,'][editable]" value="1" />\n                                                    ').concat(exprdawc_admin_meta_boxes.enable_editable,'\n                                                </label>\n\n                                                \x3c!-- Enable Conditional Logic and show table --\x3e\n                                                <label class="exprdawc_label" for="exprdawc_text_conditional_logic_').concat(this.fieldIndex,'">\n                                                    <input type="checkbox" id="exprdawc_text_conditional_logic_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_checkbox exprdawc_conditional_logic_field checkbox" name="extra_product_fields[').concat(this.fieldIndex,'][conditional_logic]" value="1" />\n                                                    ').concat(exprdawc_admin_meta_boxes.enable_conditional_logic,'\n                                                </label>\n                                            </td>\n                                            <td class="exprdawc_attribute_placeholder_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_placeholder_text_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.placeholder_text,'</label>\n                                                <input type="text" id="exprdawc_text_placeholder_text_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_textinput exprdawc_placeholder" name="extra_product_fields[').concat(this.fieldIndex,'][placeholder_text]" placeholder="').concat(exprdawc_admin_meta_boxes.placeholder_text,'" />\n                                            </td>\n                                            <td class="exprdawc_attribute_help_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_help_text_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.help_text,'</label>\n                                                <input type="text" id="exprdawc_text_help_text_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_textinput exprdawc_helptext" name="extra_product_fields[').concat(this.fieldIndex,'][help_text]" placeholder="').concat(exprdawc_admin_meta_boxes.help_text,'" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_autocomplete_function_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.autocomplete_function,'</label>\n                                                <select id="exprdawc_autocomplete_function_').concat(this.fieldIndex,'" name="extra_product_fields[').concat(this.fieldIndex,'][autocomplete]" class="exprdawc_input exprdawc_attribute_type">\n                                                    <option value="on">').concat(exprdawc_admin_meta_boxes.autocomplete_on,'</option>\n                                                    <option value="off">').concat(exprdawc_admin_meta_boxes.autocomplete_off,'</option>\n                                                    <option value="address-level1">').concat(exprdawc_admin_meta_boxes.address_level1,'</option>\n                                                    <option value="address-level2">').concat(exprdawc_admin_meta_boxes.address_level2,'</option>\n                                                    <option value="address-level3">').concat(exprdawc_admin_meta_boxes.address_level3,'</option>\n                                                    <option value="address-level4">').concat(exprdawc_admin_meta_boxes.address_level4,'</option>\n                                                    <option value="address-line1">').concat(exprdawc_admin_meta_boxes.address_line1,'</option>\n                                                    <option value="address-line2">').concat(exprdawc_admin_meta_boxes.address_line2,'</option>\n                                                    <option value="address-line3">').concat(exprdawc_admin_meta_boxes.address_line3,'</option>\n                                                    <option value="bday">').concat(exprdawc_admin_meta_boxes.bday,'</option>\n                                                    <option value="bday-day">').concat(exprdawc_admin_meta_boxes.bday_day,'</option>\n                                                    <option value="bday-month">').concat(exprdawc_admin_meta_boxes.bday_month,'</option>\n                                                    <option value="bday-year">').concat(exprdawc_admin_meta_boxes.bday_year,'</option>\n                                                    <option value="cc-additional-name">').concat(exprdawc_admin_meta_boxes.cc_additional_name,'</option>\n                                                    <option value="cc-csc">').concat(exprdawc_admin_meta_boxes.cc_csc,'</option>\n                                                    <option value="cc-exp">').concat(exprdawc_admin_meta_boxes.cc_exp,'</option>\n                                                    <option value="cc-exp-month">').concat(exprdawc_admin_meta_boxes.cc_exp_month,'</option>\n                                                    <option value="cc-exp-year">').concat(exprdawc_admin_meta_boxes.cc_exp_year,'</option>\n                                                    <option value="cc-family-name">').concat(exprdawc_admin_meta_boxes.cc_family_name,'</option>\n                                                    <option value="cc-given-name">').concat(exprdawc_admin_meta_boxes.cc_given_name,'</option>\n                                                    <option value="cc-name">').concat(exprdawc_admin_meta_boxes.cc_name,'</option>\n                                                    <option value="cc-number">').concat(exprdawc_admin_meta_boxes.cc_number,'</option>\n                                                    <option value="cc-type">').concat(exprdawc_admin_meta_boxes.cc_type,'</option>\n                                                    <option value="country">').concat(exprdawc_admin_meta_boxes.country,'</option>\n                                                    <option value="country-name">').concat(exprdawc_admin_meta_boxes.country_name,'</option>\n                                                    <option value="email">').concat(exprdawc_admin_meta_boxes.email,'</option>\n                                                    <option value="language">').concat(exprdawc_admin_meta_boxes.language,'</option>\n                                                    <option value="photo">').concat(exprdawc_admin_meta_boxes.photo,'</option>\n                                                    <option value="postal-code">').concat(exprdawc_admin_meta_boxes.postal_code,'</option>\n                                                    <option value="sex">').concat(exprdawc_admin_meta_boxes.sex,'</option>\n                                                    <option value="street-address">').concat(exprdawc_admin_meta_boxes.street_address,'</option>\n                                                    <option value="tel">').concat(exprdawc_admin_meta_boxes.tel,'</option>\n                                                    <option value="tel-area-code">').concat(exprdawc_admin_meta_boxes.tel_area_code,'</option>\n                                                    <option value="tel-country-code">').concat(exprdawc_admin_meta_boxes.tel_country_code,'</option>\n                                                    <option value="tel-extension">').concat(exprdawc_admin_meta_boxes.tel_extension,'</option>\n                                                    <option value="tel-local">').concat(exprdawc_admin_meta_boxes.tel_local,'</option>\n                                                    <option value="tel-local-prefix">').concat(exprdawc_admin_meta_boxes.tel_local_prefix,'</option>\n                                                    <option value="tel-local-suffix">').concat(exprdawc_admin_meta_boxes.tel_local_suffix,'</option>\n                                                    <option value="tel-national">').concat(exprdawc_admin_meta_boxes.tel_national,'</option>\n                                                    <option value="transaction-amount">').concat(exprdawc_admin_meta_boxes.transaction_amount,'</option>\n                                                    <option value="transaction-currency">').concat(exprdawc_admin_meta_boxes.transaction_currency,'</option>\n                                                    <option value="url">').concat(exprdawc_admin_meta_boxes.url,'</option>\n                                                </select>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                                <hr>\n\n                                \x3c!-- Conditional Logic --\x3e\n\t\t\t\t                <table class="exprdawc_settings_table exprdawc_conditional_logic_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                           <td colspan="3">\n                                                <label class="exprdawc_label">').concat(exprdawc_admin_meta_boxes.conditionals,"</label>\n\t\t\t\t\t\t\t\t                <p>").concat(exprdawc_admin_meta_boxes.conditionals_description,'</p>\n                                                <div class="exprdawc_conditional_rules">\n                                                    <div class="exprdawc_rule_group_container">\n                                                        <div class="exprdawc_rule_group">\n                                                            <div class="exprdawc_rule">\n                                                                <select name="extra_product_fields[').concat(this.fieldIndex,'][conditional_rules][0][0][field]" class="exprdawc_input exprdawc_conditional_field">\n                                                                <option value="">').concat(exprdawc_admin_meta_boxes.selectFieldNone,"</option>\n                                                                ").concat(this.getAllFieldsOptions(),'\n                                                                </select>\n                                                                <select name="extra_product_fields[').concat(this.fieldIndex,'][conditional_rules][0][0][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                                                                    <option value="field_is_empty">').concat(exprdawc_admin_meta_boxes.field_is_empty,'</option>\n                                                                    <option value="field_is_not_empty">').concat(exprdawc_admin_meta_boxes.field_is_not_empty,'</option>\n                                                                    <option value="equals">').concat(exprdawc_admin_meta_boxes.equals,'</option>\n                                                                    <option value="not_equals">').concat(exprdawc_admin_meta_boxes.notEquals,'</option>\n                                                                    <option value="greater_than">').concat(exprdawc_admin_meta_boxes.greaterThan,'</option>\n                                                                    <option value="less_than">').concat(exprdawc_admin_meta_boxes.lessThan,'</option>\n                                                                </select>\n                                                                <input type="text" name="extra_product_fields[').concat(this.fieldIndex,'][conditional_rules][0][0][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="').concat(exprdawc_admin_meta_boxes.enterValue,'" style="display:none;" />\n                                                                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                                                                <button type="button" class="button add_rule">').concat(exprdawc_admin_meta_boxes.and,'</button>\n                                                            </div>\n                                                        </div>\n                                                    </div>\n                                                </div>\n                                            </td>                                            \n                                        </tr>\n                                    </tbody>\n                                </table>\n\n\n                                \x3c!-- Text Area Option/Settings --\x3e\n                                <table class="exprdawc_settings_table exprdawc_long_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_rows_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.rows,'</label>\n                                                <input type="number" id="exprdawc_long_text_rows_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_long_text_rows" name="extra_product_fields[').concat(this.fieldIndex,'][rows]" value="2" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_cols_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.columns,'</label>\n                                                <input type="number" id="exprdawc_long_text_cols_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_long_text_cols" name="extra_product_fields[').concat(this.fieldIndex,'][cols]" value="5" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_default_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.default_value,'</label>\n                                                <textarea id="exprdawc_long_text_default_').concat(this.fieldIndex,'" class="exprdawc_textarea" rows="3" cols="30" placeholder="').concat(exprdawc_admin_meta_boxes.enter_default_text,'" name="extra_product_fields[').concat(this.fieldIndex,'][default]"></textarea>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                \x3c!-- Text Option/Settings --\x3e\n                                <table class="exprdawc_settings_table exprdawc_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_min_length_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.min_length,'</label>\n                                                <input type="number" id="exprdawc_text_min_length_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_text_min_length" name="extra_product_fields[').concat(this.fieldIndex,'][minlength]" value="0" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_max_length_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.max_length,'</label>\n                                                <input type="number" id="exprdawc_text_max_length_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_text_max_length" name="extra_product_fields[').concat(this.fieldIndex,'][maxlength]" value="255" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_default_').concat(this.fieldIndex,'">').concat(exprdawc_admin_meta_boxes.default_value,'</label>\n                                                <input type="text" id="exprdawc_text_default_').concat(this.fieldIndex,'" class="exprdawc_input exprdawc_text_default" placeholder="').concat(exprdawc_admin_meta_boxes.enter_default_text,'" name="extra_product_fields[').concat(this.fieldIndex,'][default]" />\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                <table class="exprdawc_options_table" style="display:none;">\n                                    <thead>\n                                        <tr>\n                                            <th></th>\n                                            <th>').concat(exprdawc_admin_meta_boxes.option_label,"</th>\n                                            <th>").concat(exprdawc_admin_meta_boxes.option_value,"</th>\n                                            <th>").concat(exprdawc_admin_meta_boxes.default,"</th>\n                                            <th>").concat(exprdawc_admin_meta_boxes.action,'</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody>\n                                        \x3c!-- Options will be dynamically added here --\x3e\n                                    </tbody>\n                                    <tfoot>\n                                        <tr>\n                                            <td colspan="4">\n                                                <button type="button" class="button add_option">').concat(exprdawc_admin_meta_boxes.add_option,'</button>\n                                            </td>\n                                        </tr>\n                                    </tfoot>\n                                </table>\n                                <p class="exprdawc_no_entry_message" style="display: none;">').concat(exprdawc_admin_meta_boxes.no_options,"</p>\n                            </td>\n                        </tr>\n                    </tbody>\n                </table>\n                </td>\n                </tr>\n                ")),this.noEntryContent(),e("#exprdawc_attribute_type_"+this.fieldIndex).trigger("change")}},{key:"removeCustomField",value:function(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").next(".exprdawc_options").remove(),e(t.currentTarget).closest("tr").remove(),this.noEntryContent()),!1}},{key:"toggleOptions",value:function(t){this.setDirty();var a=e(t.currentTarget).closest("tr"),n=a.next(".exprdawc_options"),o=n.find(".exprdawc_options_table"),c=a.find(".exprdawc_placeholder");"radio"===e(t.currentTarget).val()||"checkbox"===e(t.currentTarget).val()||"select"===e(t.currentTarget).val()?(c.prop("disabled",!0),o.show()):(c.prop("disabled",!1),o.hide()),"long_text"===e(t.currentTarget).val()?n.find(".exprdawc_long_text_table").show():n.find(".exprdawc_long_text_table").hide(),"text"===e(t.currentTarget).val()||"email"===e(t.currentTarget).val()||"number"===e(t.currentTarget).val()||"date"===e(t.currentTarget).val()?n.find(".exprdawc_text_table").show():n.find(".exprdawc_text_table").hide()}},{key:"toggleOptionsTable",value:function(t){var a=e(t.currentTarget);a.closest("tr").next(".exprdawc_options").toggle(),a.toggleClass("dashicons-arrow-down dashicons-arrow-up")}},{key:"addOption",value:function(t){this.setDirty();var a=e(t.currentTarget).closest(".exprdawc_options_table"),n=a.find("tbody tr").length;a.find("tbody").append('\n                <tr>\n                    <td class="move"><i class="dashicons dashicons-move"></i></td>\n                    <td>\n                        <input type="text" name="extra_product_fields['.concat(this.fieldIndex,"][options][").concat(n,'][label]" placeholder="').concat(exprdawc_admin_meta_boxes.option_label_placeholder,'" />\n                    </td>\n                    <td>\n                        <input type="text" name="extra_product_fields[').concat(this.fieldIndex,"][options][").concat(n,'][value]" placeholder="').concat(exprdawc_admin_meta_boxes.option_value_placeholder,'" />\n                    </td>\n                    <td>\n                        <input type="radio" name="extra_product_fields[').concat(this.fieldIndex,'][default]" value="').concat(n,'" />\n                    </td>\n                    <td>\n                        <button type="button" class="button remove_option">').concat(exprdawc_admin_meta_boxes.remove,"</button>\n                    </td>\n                </tr>\n                ")),this.checkOptions(a.closest(".exprdawc_options"))}},{key:"removeOption",value:function(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").remove(),this.checkOptions(e(t.currentTarget).closest(".exprdawc_options"))),!1}},{key:"checkOptions",value:function(e){var t=e.find(".exprdawc_options_table tbody"),a=e.find(".exprdawc_no_entry_message");0===t.find("tr").length?a.show():a.hide()}},{key:"exportContent",value:function(t){if(t.preventDefault(),console.log("exportContent"),console.log(this.isDirty),this.isDirty)alert("".concat(exprdawc_admin_meta_boxes.pleaseSaveBeforeExportMsg));else{var a=e("#exprdawc_export_string").val();a?navigator.clipboard.writeText(a).then((function(){alert("".concat(exprdawc_admin_meta_boxes.copySuccessMsg))}),(function(e){console.error("Could not copy text: ",e),alert("".concat(exprdawc_admin_meta_boxes.copyErrorMsg))})):alert("".concat(exprdawc_admin_meta_boxes.emptyExportMsg))}}},{key:"importContent",value:function(t){t.preventDefault();var a=prompt(exprdawc_admin_meta_boxes.enterExportString);if(a){if(!confirm(exprdawc_admin_meta_boxes.sureImportQuestion))return;var n=e("#post_ID").val();e.ajax({url:ajaxurl,method:"POST",data:{action:"exprdawc_import_custom_fields",product_id:n,export_string:a,security:exprdawc_admin_meta_boxes.edit_exprdawc_nonce},success:function(e){e.success?(alert(exprdawc_admin_meta_boxes.importSuccessMsg),location.reload()):alert(exprdawc_admin_meta_boxes.importErrorMsg)},error:function(){alert(exprdawc_admin_meta_boxes.importErrorMsg)}})}}},{key:"setDirty",value:function(){this.isDirty=!0,this.disableExportLink()}},{key:"disableExportLink",value:function(){this.isDirty&&e(".exprdawc-export").hide()}},{key:"noEntryContent",value:function(){var t=e("#exprdawc_field_body .exprdawc_attribute").length,a=e(".exprdawc_no_entry_message"),n=e("#exprdatawc_table_header"),o=e(".exprdawc-export");t>0?(a.hide(),n.show(),o.show()):(a.show(),n.hide(),o.hide())}},{key:"checkAutocompleteField",value:function(t){var a=e(t.currentTarget);if(a.is(":checked")){var n=e(".exprdawc_autocomplete_field").not(a).filter(":checked");if(n.length>0){if(!confirm(exprdawc_admin_meta_boxes.sureAnotherAutocompleCheckedQuestion))return void a.prop("checked",!1);n.prop("checked",!1)}}}},{key:"addRuleGroup",value:function(t){var a=e(t.currentTarget).closest(".exprdawc_conditional_logic_table").find(".exprdawc_conditional_rules"),n=a.find(".exprdawc_rule_group").length,o=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),c=this.getRuleGroupHtml(o,n);a.append(c)}},{key:"addRule",value:function(t){var a=e(t.currentTarget).closest(".exprdawc_rule_group"),n=a.index(),o=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),c=a.find(".exprdawc_rule").length,i=this.getRuleHtml(o,n,c);a.append(i)}},{key:"getRuleGroupHtml",value:function(e,t){return'\n            <div class="exprdawc_rule_group_container">\n                <h2>'.concat(exprdawc_admin_meta_boxes.or,'</h2>\n                <div class="exprdawc_rule_group">\n                    ').concat(this.getRuleHtml(e,t,0),"\n                </div>\n            </div>\n            ")}},{key:"getRuleHtml",value:function(e,t,a){return'\n            <div class="exprdawc_rule">\n                <select name="extra_product_fields['.concat(e,"][conditional_rules][").concat(t,"][").concat(a,'][field]" class="exprdawc_input exprdawc_conditional_field">\n                <option value="">').concat(exprdawc_admin_meta_boxes.selectFieldNone,"</option>\n                ").concat(this.getAllFieldsOptions(),'\n                </select>\n                <select name="extra_product_fields[').concat(e,"][conditional_rules][").concat(t,"][").concat(a,'][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                    <option value="field_is_empty">').concat(exprdawc_admin_meta_boxes.field_is_empty,'</option>\n                    <option value="field_is_not_empty">').concat(exprdawc_admin_meta_boxes.field_is_not_empty,'</option>\n                    <option value="equals">').concat(exprdawc_admin_meta_boxes.equals,'</option>\n                    <option value="not_equals">').concat(exprdawc_admin_meta_boxes.notEquals,'</option>\n                    <option value="greater_than">').concat(exprdawc_admin_meta_boxes.greaterThan,'</option>\n                    <option value="less_than">').concat(exprdawc_admin_meta_boxes.lessThan,'</option>\n                </select>\n                <input type="text" name="extra_product_fields[').concat(e,"][conditional_rules][").concat(t,"][").concat(a,'][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="').concat(exprdawc_admin_meta_boxes.enterValue,'" style="display:none;" />\n                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                <button type="button" class="button add_rule">+ ').concat(exprdawc_admin_meta_boxes.and,"</button>\n            </div>\n            ")}},{key:"toggleConditionalValueField",value:function(t){var a=e(t.currentTarget),n=a.closest(".exprdawc_rule").find(".exprdawc_conditional_value");"field_changed"===a.val()||"field_is_empty"===a.val()||"field_is_not_empty"===a.val()?n.hide():n.show()}},{key:"toggleConditionalValueFieldAll",value:function(){var t=this;e(".exprdawc_conditional_operator").each((function(e,a){t.toggleConditionalValueField({currentTarget:a})}))}},{key:"removeRule",value:function(t){if(confirm(exprdawc_admin_meta_boxes.confirm_delete_rule)){var a=e(t.currentTarget).closest(".exprdawc_rule_group_container");e(t.currentTarget).closest(".exprdawc_rule").remove(),0===a.find(".exprdawc_rule").length&&a.remove()}return!1}},{key:"getAllFieldsOptions",value:function(){var t="";return e("#exprdawc_field_body tr.exprdawc_attribute").each((function(){var a=e(this).find(".exprdawc_attribute_input_name input").val();t+='<option value="'.concat(a,'">').concat(a,"</option>")})),t}},{key:"toggleConditionalTable",value:function(t){var a=e(t.currentTarget),n=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_conditional_logic_table");a.is(":checked")?n.show():n.hide()}}],n&&t(a.prototype,n),o&&t(a,o),Object.defineProperty(a,"prototype",{writable:!1}),a;var a,n,o}())}))},989:()=>{},99:()=>{},364:()=>{}},a={};function n(e){var o=a[e];if(void 0!==o)return o.exports;var c=a[e]={exports:{}};return t[e](c,c.exports,n),c.exports}n.m=t,e=[],n.O=(t,a,o,c)=>{if(!a){var i=1/0;for(_=0;_<e.length;_++){for(var[a,o,c]=e[_],d=!0,l=0;l<a.length;l++)(!1&c||i>=c)&&Object.keys(n.O).every((e=>n.O[e](a[l])))?a.splice(l--,1):(d=!1,c<i&&(i=c));if(d){e.splice(_--,1);var r=o();void 0!==r&&(t=r)}}return t}c=c||0;for(var _=e.length;_>0&&e[_-1][2]>c;_--)e[_]=e[_-1];e[_]=[a,o,c]},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={890:0,898:0,956:0,107:0};n.O.j=t=>0===e[t];var t=(t,a)=>{var o,c,[i,d,l]=a,r=0;if(i.some((t=>0!==e[t]))){for(o in d)n.o(d,o)&&(n.m[o]=d[o]);if(l)var _=l(n)}for(t&&t(a);r<i.length;r++)c=i[r],n.o(e,c)&&e[c]&&e[c][0](),e[c]=0;return n.O(_)},a=self.webpackChunkextra_product_data_for_woocommerce=self.webpackChunkextra_product_data_for_woocommerce||[];a.forEach(t.bind(null,0)),a.push=t.bind(null,a.push.bind(a))})(),n.O(void 0,[898,956,107],(()=>n(976))),n.O(void 0,[898,956,107],(()=>n(989))),n.O(void 0,[898,956,107],(()=>n(99)));var o=n.O(void 0,[898,956,107],(()=>n(364)));o=n.O(o)})();
  • extra-product-data-for-woocommerce/trunk/extra-product-data-for-woocommerce.php

    r3204699 r3206929  
    33Plugin Name: Extra Product Data for WooCommerce
    44Description: Adds customizable input fields per product in WooCommerce, allowing users to enter extra details on the frontend.
    5 Version: 1.5.1
     5Version: 1.7.0
    66Author: Triopsi
    77Author URI: https://triopsi.dev
     
    2222
    2323// Useful global constants.
    24 define( 'EXPRDAWC_VERSION', '1.0.0' );
     24define( 'EXPRDAWC_VERSION', '1.7.0' );
    2525define( 'EXPRDAWC_URL', plugin_dir_url( __FILE__ ) );
    2626define( 'EXPRDAWC_PATH', __DIR__ . '/' );
    2727define( 'EXPRDAWC_CLSUF', 'exprdawc' );
     28define( 'EXPRDAWC_BASENAME', plugin_basename( __FILE__ ) );
    2829define( 'EXPRDAWC_SRC', EXPRDAWC_PATH . 'src/' );
    2930define( 'EXPRDAWC_CLASSES', EXPRDAWC_PATH . 'src/classes/' );
     
    5152}
    5253
     54// Declare compatibility with WooCommerce HPOS.
     55add_action(
     56    'before_woocommerce_init',
     57    function () {
     58        if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) {
     59            \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true );
     60
     61        }
     62    }
     63);
     64
    5365/**
    5466 * Display an admin notice if WooCommerce is not active.
  • extra-product-data-for-woocommerce/trunk/readme.txt

    r3204699 r3206929  
    55Tested up to: 6.7
    66Requires PHP: 8.2
    7 Stable tag: 1.5.1
     7Stable tag: 1.7.0
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    107107= 1.5.1 =
    108108* edit button dont visible on order overview
     109
     110= 1.6.0 =
     111* add setting page and add options for "Show on Cart" and "Show on Checkout"
     112
     113= 1.7.0 =
     114* add editable section for user in the order overview
     115* compatibility with WooCommerce HPOS
  • extra-product-data-for-woocommerce/trunk/src/classes/class-exprdawc-admin-order.php

    r3204699 r3206929  
    9898        }
    9999
    100         /** @disregard */
    101         $custom_fields = get_post_meta( $item->get_product_id(), '_extra_product_fields', true );
     100        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    102101
    103102        if ( empty( $custom_fields ) ) {
     
    179178        /** @disregard */
    180179        $product       = $item->get_product();
    181         $custom_fields = get_post_meta( $product->get_id(), '_extra_product_fields', true );
     180        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    182181
    183182        if ( empty( $custom_fields ) ) {
     
    251250        /** @disregard */
    252251        $product       = $item->get_product();
    253         $custom_fields = get_post_meta( $product->get_id(), '_extra_product_fields', true );
     252        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    254253
    255254        // Check if the product and custom fields are valid.
  • extra-product-data-for-woocommerce/trunk/src/classes/class-exprdawc-helper.php

    r3202511 r3206929  
    7171            'autocomplete'        => isset( $field_array['autocomplete'] ) ? $field_array['autocomplete'] : '',
    7272            'autofocus'           => isset( $field_array['autofocus'] ) ? $field_array['autofocus'] : false,
     73            'disabled'            => isset( $field_array['disabled'] ) ? $field_array['disabled'] : false,
    7374            'validate'            => isset( $field_array['validate'] ) ? $field_array['validate'] : array(),
    7475            'data'                => array(),
     
    8384        if ( isset( $_POST[ $field_id ] ) ) {
    8485            $field_args['value'] = sanitize_text_field( wp_unslash( $_POST[ $field_id ] ) );
    85         } elseif ( ! empty( $actual_value_array[ $id ] ) ) {
     86        } elseif ( isset( $actual_value_array[ $id ] ) ) {
    8687            $field_args['value'] = sanitize_text_field( wp_unslash( $actual_value_array[ $id ] ) );
    8788        } elseif ( isset( $field_array['default'] ) ) {
     
    146147        }
    147148
     149        if ( true === $field_args['disabled'] ) {
     150            $field_args['custom_attributes']['disabled'] = 'disabled';
     151            $field_args['input_class'][] = 'disabled';
     152        }
     153
    148154        if ( $field_args['description'] ) {
    149             $field_args['custom_attributes']['aria-describedby'] = $field_args['id'] . '-description';
     155            $field_args['custom_attributes']['aria-describedby'] = $field_id_raw . '-description';
    150156        }
    151157
  • extra-product-data-for-woocommerce/trunk/src/classes/class-exprdawc-main.php

    r3202511 r3206929  
    7777
    7878    /**
    79     * Overview Order Obejct Holder.
    80     *
    81     * @var \Overview_Order
    82     */
    83    protected $exprdawc_admin_order_edit = null;
     79     * Overview Order Obejct Holder.
     80     *
     81     * @var \Overview_Order
     82     */
     83    protected $exprdawc_admin_order_edit = null;
     84
     85    /**
     86     * Settings Object Holder.
     87     *
     88     * @var \Settings
     89     */
     90    protected $exprdawc_settings = null;
    8491
    8592    /**
     
    115122        // Add CSS an JS for backend.
    116123        add_action( 'admin_enqueue_scripts', array( $this, 'exprdawc_only_admin_enqueue_scripts' ) );
     124
     125        // Add Plugin Setting Links.
     126        add_filter('plugin_action_links_' . EXPRDAWC_BASENAME, array($this, 'exprdawc_plugin_action_links'));
     127    }
     128
     129    /**
     130     * Add Plugin Action Links.
     131     *
     132     * @param array $links The current links.
     133     * @return array The modified links.
     134     */
     135    public function exprdawc_plugin_action_links($links) {
     136        $links[] = '<a href="' . admin_url('admin.php?page=wc-settings&tab=products&section=extra_product_data') . '">' . __('Settings', 'extra-product-data-for-woocommerce') . '</a>';
     137        return $links;
    117138    }
    118139
     
    141162            $this->exprdawc_admin_order_edit = new Exprdawc_Admin_Order();
    142163
     164            // Settings.
     165            $this->exprdawc_settings = new Exprdawc_Settings();
     166
     167            // User Order.
     168            new Exprdawc_User_Order();
     169
    143170        }
    144171    }
  • extra-product-data-for-woocommerce/trunk/src/classes/class-exprdawc-overview-cart.php

    r3202511 r3206929  
    4646    public function __construct() {
    4747        add_filter( 'woocommerce_add_cart_item_data', array( $this, 'exprdawc_save_custom_field_in_cart' ), 10, 2 );
    48         add_filter( 'woocommerce_get_item_data', array( $this, 'exprdawc_display_custom_field_in_cart' ), 10, 2 );
     48        add_filter( 'woocommerce_get_item_data', array( $this, 'exprdawc_display_fields_on_cart_and_checkout' ), 10, 2 );
    4949    }
    5050
     
    6565        }
    6666
    67         $custom_fields = get_post_meta( $product_id, '_extra_product_fields', true );
     67        $pruducts = wc_get_product( $product_id );
     68        if ( ! $pruducts ) {
     69            return $cart_item_data;
     70        }
     71        $custom_fields = $pruducts->get_meta( '_extra_product_fields', true );
    6872
    6973        if ( ! empty( $custom_fields ) ) {
     
    111115
    112116    /**
    113      * This function is responsible for displaying custom fields in the cart.
     117     * This function is responsible for displaying custom fields in the cart and checkout.
    114118     *
    115119     * @param array $item_data The item data.
     
    117121     * @return void
    118122     */
    119     function exprdawc_display_custom_field_in_cart( $item_data, $cart_item ) {
    120         $custom_fields = get_post_meta( $cart_item['product_id'], '_extra_product_fields', true );
     123    function exprdawc_display_fields_on_cart_and_checkout( $item_data, $cart_item ) {
     124
     125        $product = wc_get_product( $cart_item['product_id'] );
     126        if ( ! $product ) {
     127            return $item_data;
     128        }
     129
     130        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    121131
    122132        if ( ! empty( $custom_fields ) ) {
    123             foreach ( $custom_fields as $index => $field ) {
    124                 $field_key = 'extra_user_data_' . $index;
    125                 if ( isset( $cart_item[ $field_key ] ) ) {
    126                     $item_data[] = array(
    127                         'key'     => esc_html( $field['label'] ),
    128                         'value'   => wc_clean( $cart_item[ $field_key ] ),
    129                         'display' => wc_clean( $cart_item[ $field_key ] ),
    130                     );
     133            if ( ( is_cart() && get_option( 'exprdawc_show_in_cart', 'yes' ) === 'yes' ) || ( is_checkout() && get_option( 'exprdawc_show_in_checkout', 'yes' ) === 'yes' ) ) {
     134                foreach ( $custom_fields as $index => $field ) {
     135                    $field_key = 'extra_user_data_' . $index;
     136                    if ( isset( $cart_item[ $field_key ] ) ) {
     137                        $item_data[] = array(
     138                            'key'     => esc_html( $field['label'] ),
     139                            'value'   => wc_clean( $cart_item[ $field_key ] ),
     140                            'display' => wc_clean( $cart_item[ $field_key ] ),
     141                        );
     142                    }
    131143                }
    132144            }
  • extra-product-data-for-woocommerce/trunk/src/classes/class-exprdawc-overview-order.php

    r3202511 r3206929  
    6262     */
    6363    function exprdawc_add_custom_field_to_order( $item, $cart_item_key, $values, $order ) {
    64         $custom_fields = get_post_meta( $item->get_product_id(), '_extra_product_fields', true );
    6564
     65        $product = $item->get_product();
     66        if ( ! $product ) {
     67            return;
     68        }
     69
     70        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    6671        if ( ! empty( $custom_fields ) ) {
    6772            foreach ( $custom_fields as $index => $field ) {
  • extra-product-data-for-woocommerce/trunk/src/classes/class-exprdawc-product-page-backend.php

    r3204687 r3206929  
    7979     */
    8080    public function exprdawc_add_custom_product_fields() {
    81         $custom_fields = get_post_meta( get_the_ID(), '_extra_product_fields', true );
     81        global $post;
     82        $product       = wc_get_product( $post );
     83        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    8284        include EXPRDAWC_TEMPLATES . 'html-tab-extra-attributes.php';
    8385    }
     
    195197                'conditionals_description'             => esc_html__( 'Only show this field when conditional rules are true.', 'extra-product-data-for-woocommerce' ),
    196198                'pleaseSaveBeforeExportMsg'            => esc_html__( 'Please save your changes before exporting.', 'extra-product-data-for-woocommerce' ),
     199                'enable_editable'                      => esc_html__( 'User can edit the field afterwards', 'extra-product-data-for-woocommerce' ),
    197200            )
    198201        );
     
    210213        // Check if extra product fields are set.
    211214        if ( isset( $_POST['extra_product_fields'] ) ) {
     215
     216            $product = wc_get_product( $post_id );
    212217
    213218            // UNSLASH: Remove slashes from the input data
     
    227232                    $autofocus         = isset( $field['autofocus'] ) ? true : false;
    228233                    $index             = isset( $field['index'] ) ? absint( $field['index'] ) : 0;
     234                    $editable          = isset( $field['editable'] ) ? true : false;
    229235
    230236                    // Conditional Logic
     
    294300                        'conditional_rules' => $conditional_logic_rules,
    295301                        'index'             => $index,
     302                        'editable'          => $editable,
    296303                    );
    297304                },
     
    302309            $custom_fields = array_filter( $custom_fields );
    303310
    304             // Save the sanitized and validated data
    305             update_post_meta( $post_id, '_extra_product_fields', $custom_fields );
     311            // Save the custom fields to the product
     312            $product->update_meta_data( '_extra_product_fields', $custom_fields );
     313
     314            // Save the product
     315            $product->save();
    306316        }
    307317    }
     
    349359
    350360        // Save the sanitized and validated data
    351         update_post_meta( $product_id, '_extra_product_fields', $custom_fields );
     361        $product->update_meta_data( '_extra_product_fields', $custom_fields );
     362
     363        // Save the product
     364        $product->save();
    352365
    353366        // Return success message.
  • extra-product-data-for-woocommerce/trunk/src/classes/class-exprdawc-product-page-fronted.php

    r3202511 r3206929  
    9595    function exprdawc_display_custom_fields_on_product_page() {
    9696        global $product;
    97         $custom_fields = get_post_meta( $product->get_id(), '_extra_product_fields', true );
     97        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    9898
    9999        if ( ! empty( $custom_fields ) ) {
     
    123123     */
    124124    function exprdawc_validate_custom_fields( $passed, $product_id, $quantity ) {
    125         $custom_fields = get_post_meta( $product_id, '_extra_product_fields', true );
     125
     126        $product = wc_get_product( $product_id );
     127        if ( ! $product ) {
     128            return $passed;
     129        }
     130        $custom_fields = $product->get_meta( '_extra_product_fields', true );
    126131
    127132        if ( ! empty( $custom_fields ) ) {
  • extra-product-data-for-woocommerce/trunk/src/templates/view/fields/checkbox.php

    r3202511 r3206929  
    4949    }
    5050    if ( ! empty( $field_args['description'] ) ) {
    51         echo '<span id="' . esc_attr( $field_args['id'] ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
     51        echo '<span id="' . esc_attr( $field_id_raw ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
    5252    }
    5353}
  • extra-product-data-for-woocommerce/trunk/src/templates/view/fields/radio.php

    r3202511 r3206929  
    4646    }
    4747    if ( ! empty( $field_args['description'] ) ) {
    48         echo '<span id="' . esc_attr( $field_args['id'] ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
     48        echo '<span id="' . esc_attr( $field_id_raw ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
    4949    }
    5050}
  • extra-product-data-for-woocommerce/trunk/src/templates/view/fields/select.php

    r3202511 r3206929  
    4141    echo '</select>';
    4242    if ( ! empty( $field_args['description'] ) ) {
    43         echo '<span id="' . esc_attr( $field_args['id'] ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
     43        echo '<span id="' . esc_attr( $field_id_raw ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
    4444    }
    4545}
  • extra-product-data-for-woocommerce/trunk/src/templates/view/fields/text.php

    r3202511 r3206929  
    3939
    4040if ( ! empty( $field_args['description'] ) ) {
    41     echo '<span id="' . esc_attr( $field_args['id'] ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
     41    echo '<span id="' . esc_attr( $field_id_raw ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
    4242}
    4343echo '</span>';
  • extra-product-data-for-woocommerce/trunk/src/templates/view/fields/textarea.php

    r3202511 r3206929  
    4141    '</textarea>';
    4242if ( ! empty( $field_args['description'] ) ) {
    43     echo '<span id="' . esc_attr( $field_args['id'] ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
     43    echo '<span id="' . esc_attr( $field_id_raw ) . '_description" class="' . esc_attr( implode( ' ', $field_args['description_class'] ) ) . '">' . esc_html( $field_args['description'] ) . '</span>';
    4444}
    4545echo '</span>';
  • extra-product-data-for-woocommerce/trunk/src/templates/view/html-tab-extra-attributes-fields.php

    r3202511 r3206929  
    6969                                    <input type="checkbox" id="exprdawc_text_autofocus_<?php echo esc_html( $index ); ?>" class="exprdawc_input exprdawc_checkbox exprdawc_autocomplete_field checkbox" name="extra_product_fields[<?php echo esc_html( $index ); ?>][autofocus]" value="1" <?php echo checked( 1, $field['autofocus'] ?? 0, false ); ?> />
    7070                                    <?php esc_html_e( 'Autofocus this field on product page', 'extra-product-data-for-woocommerce' ); ?>
     71                                </label>
     72                                <label class="exprdawc_label" for="exprdawc_text_editable_<?php echo esc_html( $index ); ?>">
     73                                    <input type="checkbox" id="exprdawc_text_editable_<?php echo esc_html( $index ); ?>" class="exprdawc_input exprdawc_checkbox exprdawc_editable_field checkbox" name="extra_product_fields[<?php echo esc_html( $index ); ?>][editable]" value="1" <?php echo checked( 1, $field['editable'] ?? 0, false ); ?> />
     74                                    <?php esc_html_e( 'User can edit the field afterwards', 'extra-product-data-for-woocommerce' ); ?>
    7175                                </label>
    7276                                <!-- Enable Conditional Logic and show table -->
Note: See TracChangeset for help on using the changeset viewer.