├── assets ├── images │ ├── blank.gif │ ├── fpd │ │ ├── grid.png │ │ └── ajax-loader.gif │ ├── loader.gif │ └── mvx.svg ├── admin │ ├── images │ │ ├── grad.png │ │ ├── blank.gif │ │ ├── select.png │ │ ├── select2.png │ │ ├── slider.png │ │ ├── select2x2.png │ │ ├── custom_hex.png │ │ ├── custom_hsb_b.png │ │ ├── custom_hsb_h.png │ │ ├── custom_hsb_s.png │ │ ├── custom_indic.gif │ │ ├── custom_rgb_b.png │ │ ├── custom_rgb_g.png │ │ ├── custom_rgb_r.png │ │ ├── custom_submit.png │ │ ├── colorpicker_hex.png │ │ ├── colorpicker_hsb_b.png │ │ ├── colorpicker_hsb_h.png │ │ ├── colorpicker_hsb_s.png │ │ ├── colorpicker_indic.gif │ │ ├── colorpicker_rgb_b.png │ │ ├── colorpicker_rgb_g.png │ │ ├── colorpicker_rgb_r.png │ │ ├── custom_background.png │ │ ├── colorpicker_overlay.png │ │ ├── colorpicker_select.gif │ │ ├── colorpicker_submit.png │ │ └── colorpicker_background.png │ ├── css │ │ ├── colorpicker_btn.css │ │ ├── admin.css │ │ └── chosen.css │ └── js │ │ ├── admin.js │ │ ├── button_gen.js │ │ └── colorpicker_btn.js └── frontend │ ├── css │ └── frontend.css │ └── js │ └── frontend.js ├── lib └── jquery │ ├── select2 │ ├── select2.js │ └── select2.css │ ├── upload │ ├── images │ │ ├── Placeholder.png │ │ ├── Placeholderdoc.png │ │ ├── Placeholderpdf.png │ │ ├── Placeholderppt.png │ │ ├── Placeholdertxt.png │ │ ├── Placeholderxls.png │ │ └── PlaceholderVideo.png │ ├── media-upload.min.js │ ├── media-upload.min.css │ ├── media-upload.css │ └── media-upload.js │ ├── colorpicker │ └── colorpicker.js │ └── qtip │ └── qtip.css ├── framework ├── Catalog-Pro-Banner.jpg ├── field-types │ ├── js │ │ ├── color.js │ │ └── upload.js │ ├── text.php │ ├── radio.php │ ├── textarea.php │ ├── hidden.php │ ├── password.php │ ├── textbox.php │ ├── wpeditor.php │ ├── color.php │ ├── select.php │ ├── checkbox.php │ ├── upload.php │ ├── export.php │ ├── multiselect.php │ ├── css │ │ └── checkbox.css │ ├── date.php │ ├── daterange.php │ └── table_body.php └── validations │ ├── required.php │ ├── email.php │ ├── escurlraw.php │ ├── number.php │ └── color.php ├── woocommerce-catalog-enquiry-config.php ├── includes ├── class-woocommerce-catalog-enquiry-dependencies.php └── woocommerce-catalog-enquiry-core-functions.php ├── templates ├── emails │ ├── plain │ │ └── woocommerce-catalog-enquiry-admin.php │ └── woocommerce-catalog-enquiry-admin.php └── woocommerce-catalog-enquiry-variable-product.php ├── Woocommerce_Catalog_Enquiry.php ├── classes ├── class-woocommerce-catalog-enquiry.php ├── emails │ └── class-woocommerce-catalog-enquiry-email.php ├── class-woocommerce-catalog-enquiry-ajax.php └── class-woocommerce-catalog-enquiry-admin.php └── admin └── class-woocommerce-catalog-enquiry-settings.php /assets/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/images/blank.gif -------------------------------------------------------------------------------- /assets/images/fpd/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/images/fpd/grid.png -------------------------------------------------------------------------------- /assets/images/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/images/loader.gif -------------------------------------------------------------------------------- /assets/admin/images/grad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/grad.png -------------------------------------------------------------------------------- /assets/admin/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/blank.gif -------------------------------------------------------------------------------- /assets/admin/images/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/select.png -------------------------------------------------------------------------------- /assets/admin/images/select2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/select2.png -------------------------------------------------------------------------------- /assets/admin/images/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/slider.png -------------------------------------------------------------------------------- /lib/jquery/select2/select2.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/lib/jquery/select2/select2.js -------------------------------------------------------------------------------- /assets/admin/images/select2x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/select2x2.png -------------------------------------------------------------------------------- /assets/images/fpd/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/images/fpd/ajax-loader.gif -------------------------------------------------------------------------------- /framework/Catalog-Pro-Banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/framework/Catalog-Pro-Banner.jpg -------------------------------------------------------------------------------- /assets/admin/images/custom_hex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/custom_hex.png -------------------------------------------------------------------------------- /assets/admin/images/custom_hsb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/custom_hsb_b.png -------------------------------------------------------------------------------- /assets/admin/images/custom_hsb_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/custom_hsb_h.png -------------------------------------------------------------------------------- /assets/admin/images/custom_hsb_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/custom_hsb_s.png -------------------------------------------------------------------------------- /assets/admin/images/custom_indic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/custom_indic.gif -------------------------------------------------------------------------------- /assets/admin/images/custom_rgb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/custom_rgb_b.png -------------------------------------------------------------------------------- /assets/admin/images/custom_rgb_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/custom_rgb_g.png -------------------------------------------------------------------------------- /assets/admin/images/custom_rgb_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/custom_rgb_r.png -------------------------------------------------------------------------------- /assets/admin/images/custom_submit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/custom_submit.png -------------------------------------------------------------------------------- /assets/admin/images/colorpicker_hex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/colorpicker_hex.png -------------------------------------------------------------------------------- /assets/admin/images/colorpicker_hsb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/colorpicker_hsb_b.png -------------------------------------------------------------------------------- /assets/admin/images/colorpicker_hsb_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/colorpicker_hsb_h.png -------------------------------------------------------------------------------- /assets/admin/images/colorpicker_hsb_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/colorpicker_hsb_s.png -------------------------------------------------------------------------------- /assets/admin/images/colorpicker_indic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/colorpicker_indic.gif -------------------------------------------------------------------------------- /assets/admin/images/colorpicker_rgb_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/colorpicker_rgb_b.png -------------------------------------------------------------------------------- /assets/admin/images/colorpicker_rgb_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/colorpicker_rgb_g.png -------------------------------------------------------------------------------- /assets/admin/images/colorpicker_rgb_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/colorpicker_rgb_r.png -------------------------------------------------------------------------------- /assets/admin/images/custom_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/custom_background.png -------------------------------------------------------------------------------- /lib/jquery/upload/images/Placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/lib/jquery/upload/images/Placeholder.png -------------------------------------------------------------------------------- /assets/admin/images/colorpicker_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/colorpicker_overlay.png -------------------------------------------------------------------------------- /assets/admin/images/colorpicker_select.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/colorpicker_select.gif -------------------------------------------------------------------------------- /assets/admin/images/colorpicker_submit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/colorpicker_submit.png -------------------------------------------------------------------------------- /lib/jquery/upload/images/Placeholderdoc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/lib/jquery/upload/images/Placeholderdoc.png -------------------------------------------------------------------------------- /lib/jquery/upload/images/Placeholderpdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/lib/jquery/upload/images/Placeholderpdf.png -------------------------------------------------------------------------------- /lib/jquery/upload/images/Placeholderppt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/lib/jquery/upload/images/Placeholderppt.png -------------------------------------------------------------------------------- /lib/jquery/upload/images/Placeholdertxt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/lib/jquery/upload/images/Placeholdertxt.png -------------------------------------------------------------------------------- /lib/jquery/upload/images/Placeholderxls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/lib/jquery/upload/images/Placeholderxls.png -------------------------------------------------------------------------------- /assets/admin/images/colorpicker_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/assets/admin/images/colorpicker_background.png -------------------------------------------------------------------------------- /lib/jquery/upload/images/PlaceholderVideo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kndnsow/woocommerce-catalog-enquiry/HEAD/lib/jquery/upload/images/PlaceholderVideo.png -------------------------------------------------------------------------------- /framework/field-types/js/color.js: -------------------------------------------------------------------------------- 1 | // For Color Field Type 2 | 3 | jQuery(document).ready(function($){ 4 | $('.pickcolor-field').wpColorPicker(); 5 | }); 6 | 7 | -------------------------------------------------------------------------------- /woocommerce-catalog-enquiry-config.php: -------------------------------------------------------------------------------- 1 | ".$options[ $id ] ."

"; -------------------------------------------------------------------------------- /framework/validations/email.php: -------------------------------------------------------------------------------- 1 | $v ) { 8 | echo " $v
"; 9 | } -------------------------------------------------------------------------------- /framework/validations/escurlraw.php: -------------------------------------------------------------------------------- 1 | " . $options[ $name ] . "
"; -------------------------------------------------------------------------------- /framework/validations/number.php: -------------------------------------------------------------------------------- 1 |
"; -------------------------------------------------------------------------------- /framework/field-types/password.php: -------------------------------------------------------------------------------- 1 |
"; -------------------------------------------------------------------------------- /framework/field-types/textbox.php: -------------------------------------------------------------------------------- 1 |
"; -------------------------------------------------------------------------------- /framework/validations/color.php: -------------------------------------------------------------------------------- 1 | "{$setting_id}[$name]", 13 | 'textarea_rows' => 1 14 | ); 15 | 16 | wp_editor( $content, $editor_id, $args ); -------------------------------------------------------------------------------- /framework/field-types/color.php: -------------------------------------------------------------------------------- 1 | "; 12 | 13 | wp_enqueue_script( 'woocatalog-color-js', $Woocommerce_Catalog_Enquiry->plugin_url . 'framework/field-types/js/color.js', array( 14 | 'wp-color-picker' 15 | ),false, true ); -------------------------------------------------------------------------------- /framework/field-types/select.php: -------------------------------------------------------------------------------- 1 | "; 8 | foreach ( $option_values as $k => $v ) { 9 | if(is_array($v)){ 10 | echo ''; 11 | foreach ( $v as $k1=>$v1 ) { 12 | echo ""; 13 | } 14 | echo ''; 15 | }else{ 16 | if(!isset($options[ $name ])){ 17 | $options[ $name ] = ''; 18 | } 19 | echo ""; 20 | } 21 | } 22 | echo " "; -------------------------------------------------------------------------------- /framework/field-types/checkbox.php: -------------------------------------------------------------------------------- 1 | $v ) { 13 | echo " $v
"; 14 | $c++; 15 | } 16 | 17 | wp_enqueue_style('woocommerce_check_css', $Woocommerce_Catalog_Enquiry->plugin_url . 'framework/field-types/css/checkbox.css', array(), $Woocommerce_Catalog_Enquiry->version); 18 | -------------------------------------------------------------------------------- /framework/field-types/upload.php: -------------------------------------------------------------------------------- 1 | "; 12 | echo "
"; 13 | 14 | wp_enqueue_script( 'woocommerce-catalog-upload-js', $Woocommerce_Catalog_Enquiry->plugin_url . 'framework/field-types/js/upload.js', array() ); 15 | wp_enqueue_media(); -------------------------------------------------------------------------------- /framework/field-types/export.php: -------------------------------------------------------------------------------- 1 | options_general_settings as $k ) { 9 | switch ( $k[ 'type' ] ) { 10 | case 'setting': 11 | $s = get_option( $k[ 'id' ]); 12 | if(is_array($s)){ 13 | $settings[$k[ 'id' ]] = $s; 14 | } 15 | break; 16 | } 17 | } 18 | 19 | $export = json_encode($settings); 20 | 21 | echo "
"; 22 | 23 | echo ' 24 | '; -------------------------------------------------------------------------------- /framework/field-types/js/upload.js: -------------------------------------------------------------------------------- 1 | // For Upload Field Type 2 | 3 | jQuery(document).ready(function($){ 4 | var _custom_media = true, 5 | _orig_send_attachment = wp.media.editor.send.attachment; 6 | 7 | $('.upload-button').click(function(e) { 8 | var send_attachment_bkp = wp.media.editor.send.attachment; 9 | var button = $(this); 10 | var id = jQuery(this).prev('input'); 11 | _custom_media = true; 12 | wp.media.editor.send.attachment = function(props, attachment){ 13 | var size = props.size; 14 | var att =attachment.sizes[size]; 15 | 16 | //props.size 17 | if ( _custom_media ) { 18 | $(id).val(att.url); 19 | } else { 20 | return _orig_send_attachment.apply( this, [props, attachment] ); 21 | }; 22 | } 23 | 24 | wp.media.editor.open(button); 25 | return false; 26 | }); 27 | 28 | $('.add_media').on('click', function(){ 29 | _custom_media = false; 30 | }); 31 | }); 32 | -------------------------------------------------------------------------------- /lib/jquery/colorpicker/colorpicker.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | "use strict"; 3 | function pickColor(color, element) { 4 | element.val(color); 5 | } 6 | function toggle_text(link_color) { 7 | if ("" === link_color.val().replace("#", "")) { 8 | link_color.val(default_color); 9 | pickColor(default_color, link_color); 10 | } else pickColor(link_color.val(), link_color); 11 | } 12 | var default_color = "fbfbfb"; 13 | $(document).ready(function() { 14 | $(".colorpicker").each(function() { 15 | var link_color = $(this); 16 | link_color.wpColorPicker({ 17 | change: function(event, ui) { 18 | pickColor(link_color.wpColorPicker("color"), link_color); 19 | }, 20 | clear: function() { 21 | pickColor("", link_color); 22 | } 23 | }); 24 | }); 25 | $(".colorpicker").each(function() { 26 | $(this).click(function() { toggle_text($(this)); }); 27 | toggle_text($(this)); 28 | }); 29 | }); 30 | })(jQuery); -------------------------------------------------------------------------------- /assets/images/mvx.svg: -------------------------------------------------------------------------------- 1 | 16X16-icon -------------------------------------------------------------------------------- /framework/field-types/multiselect.php: -------------------------------------------------------------------------------- 1 | "; 12 | 13 | foreach ( $option_values as $k => $v ) { 14 | if(is_array($v)){ 15 | echo ''; 16 | foreach ( $v as $k1=>$v1 ) { 17 | echo ""; 18 | } 19 | echo ''; 20 | } else { 21 | if(!isset($options[ $name ])){ 22 | $options[ $name ] = ''; 23 | } 24 | if( in_array($k,$options[$name]) ){ 25 | echo ""; 26 | } else { 27 | echo ""; 28 | } 29 | } 30 | } 31 | echo " "; 32 | echo "
"; -------------------------------------------------------------------------------- /includes/class-woocommerce-catalog-enquiry-dependencies.php: -------------------------------------------------------------------------------- 1 | 0)e("#"+u+"_preview").attr("src",i.url)}else{e("#"+u+"_display").attr("href",i.url);if(i.icon)e("#"+u+"_display span").css("background",'url("'+i.icon+'")').css("width","48px").css("height","64px")}e("#"+u).val(i.url);e("#"+u).hide();s.hide();e("#"+u+"_remove_button").show()}else{return n.apply(this,[r,i])}};wp.media.editor.open(s);return false});e(".dc-wp-fields-uploader .remove_button").each(function(){var t=e(this);var n=e(this).data("mime");var r=t.attr("id").replace("_remove_button","");if(n=="image")var i=e("#"+r+"_display").attr("src");else var i=e("#"+r+"_display").attr("href");if(i.length==0)t.hide();else e("#"+r+"_button").hide();t.click(function(t){r=e(this).attr("id").replace("_remove_button","");if(n=="image"){e("#"+r+"_display").attr("src","").addClass("placeHolder").hide();e("#"+r+"_preview").attr("src","")}else{e("#"+r+"_display").attr("href","#")}e("#"+r).val("");e(this).hide();e("#"+r+"_button").show();return false})});e(".add_media").on("click",function(){t=false})}) 2 | -------------------------------------------------------------------------------- /framework/field-types/date.php: -------------------------------------------------------------------------------- 1 | __('01-Jan','woocommerce-catalog-enquiry'), 9 | '02'=>__('02-Feb','woocommerce-catalog-enquiry'), 10 | '03'=>__('03-Mar','woocommerce-catalog-enquiry'), 11 | '04'=>__('04-Apr','woocommerce-catalog-enquiry'), 12 | '05'=>__('05-May','woocommerce-catalog-enquiry'), 13 | '06'=>__('06-Jun','woocommerce-catalog-enquiry'), 14 | '07'=>__('07-Jul','woocommerce-catalog-enquiry'), 15 | '08'=>__('08-Aug','woocommerce-catalog-enquiry'), 16 | '09'=>__('09-Sep','woocommerce-catalog-enquiry'), 17 | '10'=>__('10-Oct','woocommerce-catalog-enquiry'), 18 | '11'=>__('11-Nov','woocommerce-catalog-enquiry'), 19 | '12'=>__('12-Dec','woocommerce-catalog-enquiry'), 20 | ); 21 | 22 | 23 | echo ""; 28 | 29 | echo ""; 30 | 31 | echo ','; 32 | echo "
"; 33 | -------------------------------------------------------------------------------- /lib/jquery/upload/media-upload.min.css: -------------------------------------------------------------------------------- 1 | .remove_button,.upload_button,.upload_input{vertical-align:bottom!important}.dc-wp-fields-uploader img{margin-right:5px;border-radius:5%;-moz-border-radius:5%;-webkit-border-radius:5%;-nsborder-radius:5%;border:2px solid #dfdfdf}.dc-wp-fields-uploader .placeHolder{background:url(images/Placeholder.png);background:url(images/Placeholder.png) no-repeat center center / 75px 75px;webkit-background-size:cover;moz-background-size:cover;o-background-size:cover;background-size:cover;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/Placeholder.png', sizingMethod='scale');-ms-filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/Placeholder.png', sizingMethod='scale');width:75px;height:75px;display:inline-block}.dc-wp-fields-uploader .placeHoldervideo{background:url(images/PlaceholderVideo.png);background:url(images/PlaceholderVideo.png) no-repeat center center / 75px 75px}.dc-wp-fields-uploader .placeHolderdoc,.dc-wp-fields-uploader .placeHolderdocx{background:url(images/Placeholderdoc.png);background:url(images/Placeholderdoc.png) no-repeat center center / 75px 75px}.dc-wp-fields-uploader .placeHolderpdf{background:url(images/Placeholderpdf.png);background:url(images/Placeholderpdf.png) no-repeat center center / 75px 75px}.dc-wp-fields-uploader .placeHolderppt,.dc-wp-fields-uploader .placeHolderpptx{background:url(images/Placeholderppt.png);background:url(images/Placeholderppt.png) no-repeat center center / 75px 75px}.dc-wp-fields-uploader .placeHolderxls,.dc-wp-fields-uploader .placeHolderxlsx{background:url(images/Placeholderxls.png);background:url(images/Placeholderxls.png) no-repeat center center / 75px 75px}.dc-wp-fields-uploader .placeHoldertxt{background:url(images/Placeholdertxt.png);background:url(images/Placeholdertxt.png) no-repeat center center / 75px 75px} 2 | -------------------------------------------------------------------------------- /lib/jquery/upload/media-upload.css: -------------------------------------------------------------------------------- 1 | .upload_button, .remove_button, .upload_input { 2 | vertical-align: bottom !important; 3 | } 4 | 5 | .dc-wp-fields-uploader img { 6 | margin-right: 5px; 7 | border-radius: 5%; 8 | -moz-border-radius: 5%; 9 | -webkit-border-radius: 5%; 10 | -nsborder-radius: 5%; 11 | border: 2px solid #dfdfdf; 12 | } 13 | 14 | .dc-wp-fields-uploader .placeHolder { 15 | background: url('images/Placeholder.png'); 16 | background: url(images/Placeholder.png) no-repeat center center / 75px 75px; 17 | webkit-background-size: cover; 18 | moz-background-size: cover; 19 | o-background-size: cover; 20 | background-size: cover; 21 | filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/Placeholder.png', sizingMethod='scale'); 22 | -ms-filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/Placeholder.png', sizingMethod='scale'); 23 | width :75px; 24 | height: 75px; 25 | display: inline-block; 26 | } 27 | 28 | .dc-wp-fields-uploader .placeHoldervideo { 29 | background: url('images/PlaceholderVideo.png'); 30 | background: url(images/PlaceholderVideo.png) no-repeat center center / 75px 75px; 31 | } 32 | 33 | .dc-wp-fields-uploader .placeHolderdoc, .dc-wp-fields-uploader .placeHolderdocx { 34 | background: url('images/Placeholderdoc.png'); 35 | background: url(images/Placeholderdoc.png) no-repeat center center / 75px 75px; 36 | } 37 | 38 | .dc-wp-fields-uploader .placeHolderpdf { 39 | background: url('images/Placeholderpdf.png'); 40 | background: url(images/Placeholderpdf.png) no-repeat center center / 75px 75px; 41 | } 42 | 43 | .dc-wp-fields-uploader .placeHolderppt, .dc-wp-fields-uploader .placeHolderpptx { 44 | background: url('images/Placeholderppt.png'); 45 | background: url(images/Placeholderppt.png) no-repeat center center / 75px 75px; 46 | } 47 | 48 | .dc-wp-fields-uploader .placeHolderxls, .dc-wp-fields-uploader .placeHolderxlsx { 49 | background: url('images/Placeholderxls.png'); 50 | background: url(images/Placeholderxls.png) no-repeat center center / 75px 75px; 51 | } 52 | 53 | .dc-wp-fields-uploader .placeHoldertxt { 54 | background: url('images/Placeholdertxt.png'); 55 | background: url(images/Placeholdertxt.png) no-repeat center center / 75px 75px; 56 | } -------------------------------------------------------------------------------- /framework/field-types/daterange.php: -------------------------------------------------------------------------------- 1 | __('01-Jan','woocommerce-catalog-enquiry'), 9 | '02'=>__('02-Feb','woocommerce-catalog-enquiry'), 10 | '03'=>__('03-Mar','woocommerce-catalog-enquiry'), 11 | '04'=>__('04-Apr','woocommerce-catalog-enquiry'), 12 | '05'=>__('05-May','woocommerce-catalog-enquiry'), 13 | '06'=>__('06-Jun','woocommerce-catalog-enquiry'), 14 | '07'=>__('07-Jul','woocommerce-catalog-enquiry'), 15 | '08'=>__('08-Aug','woocommerce-catalog-enquiry'), 16 | '09'=>__('09-Sep','woocommerce-catalog-enquiry'), 17 | '10'=>__('10-Oct','woocommerce-catalog-enquiry'), 18 | '11'=>__('11-Nov','woocommerce-catalog-enquiry'), 19 | '12'=>__('12-Dec','woocommerce-catalog-enquiry'), 20 | ); 21 | 22 | _e('Start Date', 'woocommerce-catalog-enquiry'); 23 | echo ""; 28 | 29 | echo ""; 30 | 31 | echo ','; 32 | echo ""; 33 | 34 | echo '    '; 35 | _e('End Date', 'woocommerce-catalog-enquiry'); 36 | echo ""; 41 | 42 | echo ""; 43 | 44 | echo ','; 45 | echo "
"; 46 | 47 | -------------------------------------------------------------------------------- /lib/jquery/upload/media-upload.js: -------------------------------------------------------------------------------- 1 | jQuery(document).ready(function($){ 2 | var _custom_media = true, 3 | _orig_send_attachment = wp.media.editor.send.attachment; 4 | 5 | $('.dc-wp-fields-uploader .upload_button').click(function(e) { 6 | var send_attachment_bkp = wp.media.editor.send.attachment; 7 | var button = $(this); 8 | var mime = $(this).data('mime'); 9 | var id = button.attr('id').replace('_button', ''); 10 | _custom_media = true; 11 | wp.media.editor.send.attachment = function(props, attachment) { 12 | console.log(JSON.stringify(props) +":"+ JSON.stringify(attachment)); 13 | if ( _custom_media ) { 14 | if(mime == 'image') { 15 | $("#"+id+'_display').attr('src', attachment.url).removeClass('placeHolder').show(); 16 | if($("#"+id+'_preview').length > 0) 17 | $("#"+id+'_preview').attr('src', attachment.url); 18 | } else { 19 | $("#"+id+'_display').attr('href', attachment.url); 20 | if(attachment.icon) $("#"+id+'_display span').css('background', 'url("'+attachment.icon+'")').css('width', '48px').css('height', '64px'); 21 | } 22 | $("#"+id).val(attachment.url); 23 | $("#"+id).hide(); 24 | button.hide(); 25 | $("#"+id+'_remove_button').show(); 26 | } else { 27 | return _orig_send_attachment.apply( this, [props, attachment] ); 28 | }; 29 | } 30 | 31 | wp.media.editor.open(button); 32 | return false; 33 | }); 34 | 35 | $('.dc-wp-fields-uploader .remove_button').each(function() { 36 | var button = $(this); 37 | var mime = $(this).data('mime'); 38 | var id = button.attr('id').replace('_remove_button', ''); 39 | if(mime == 'image') 40 | var attachment_url = $("#"+id+'_display').attr('src'); 41 | else 42 | var attachment_url = $("#"+id+'_display').attr('href'); 43 | if(attachment_url.length == 0) button.hide(); 44 | else $("#"+id+'_button').hide(); 45 | button.click(function(e) { 46 | id = $(this).attr('id').replace('_remove_button', ''); 47 | if(mime == 'image') { 48 | $("#"+id+'_display').attr('src', '').addClass('placeHolder').hide(); 49 | $("#"+id+'_preview').attr('src', ''); 50 | } else { 51 | $("#"+id+'_display').attr('href', '#'); 52 | } 53 | $("#"+id).val(''); 54 | $(this).hide(); 55 | $("#"+id+'_button').show(); 56 | return false; 57 | }); 58 | }); 59 | 60 | $('.add_media').on('click', function(){ 61 | _custom_media = false; 62 | }); 63 | }); -------------------------------------------------------------------------------- /templates/emails/plain/woocommerce-catalog-enquiry-admin.php: -------------------------------------------------------------------------------- 1 | get_name(); 22 | 23 | if($product_obj->get_type() == 'variation'){ 24 | if(isset($enquiry_data['variations']) && count($enquiry_data['variations']) > 0 ){ 25 | foreach ($enquiry_data['variations'] as $label => $value) { 26 | $label = str_replace( 'attribute_pa_', '', $label ); 27 | $label = str_replace( 'attribute_', '', $label ); 28 | echo "\n".ucfirst($label).": ".ucfirst($value); 29 | } 30 | }else{ 31 | if($product_obj->get_attributes()){ 32 | foreach ($product_obj->get_attributes() as $label => $value) { 33 | echo "\n".ucfirst(wc_attribute_label($label)).": ".ucfirst($value); 34 | } 35 | } 36 | } 37 | } 38 | 39 | echo "\n\n Product link : ".$product_obj->get_permalink(); 40 | if($product_obj->get_sku()) 41 | echo "\n\n Product SKU : ".$product_obj->get_sku(); 42 | 43 | echo "\n\n\n****************************************************\n\n"; 44 | 45 | echo "\n Customer Details : "; 46 | 47 | echo "\n\n\n Name : ".$enquiry_data['cust_name']; 48 | 49 | echo "\n\n Email : ".$enquiry_data['cust_email']; 50 | if(isset($enquiry_data['phone'])) 51 | echo "\n\n User Phone : ".$enquiry_data['phone']; 52 | if(isset($enquiry_data['address'])) 53 | echo "\n\n User Address : ".$enquiry_data['address']; 54 | if(isset($enquiry_data['subject'])) 55 | echo "\n\n User Subject : ".$enquiry_data['subject']; 56 | if(isset($enquiry_data['comment'])) 57 | echo "\n\n User Comments : ".$enquiry_data['comment']; 58 | 59 | echo "\n\n\n****************************************************\n\n"; 60 | 61 | echo apply_filters('woocommerce_catalog_enquiry_email_footer_text', sprintf( __( '%s - Powered by WC Catalog Enquiry', 'woocommerce-catalog-enquiry' ), get_bloginfo( 'name', 'display' ) ) ); 62 | -------------------------------------------------------------------------------- /Woocommerce_Catalog_Enquiry.php: -------------------------------------------------------------------------------- 1 | ' . __( 'Settings', WOOCOMMERCE_CATALOG_ENQUIRY_TEXT_DOMAIN ) . '', 37 | '' . __( 'Support', WOOCOMMERCE_CATALOG_ENQUIRY_TEXT_DOMAIN ) . '', 38 | ); 39 | $links = array_merge( $plugin_links, $links ); 40 | if ( apply_filters( 'woocommerce_catalog_enquiry_free_active', true ) ) { 41 | $links[] = '' . __( 'Upgrade to Pro', WOOCOMMERCE_CATALOG_ENQUIRY_TEXT_DOMAIN ) . ''; 42 | } 43 | return $links; 44 | } 45 | add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'woocommerce_catalog_enquiry_plugin_links' ); 46 | 47 | add_filter( 'plugin_row_meta', 'plugin_row_meta', 10, 2 ); 48 | 49 | function plugin_row_meta( $links, $file ) { 50 | if($file == 'woocommerce-catalog-enquiry/Woocommerce_Catalog_Enquiry.php' && apply_filters( 'woocommerce_catalog_enquiry_free_active', true )){ 51 | $row_meta = array( 52 | 'pro' => '' . __( 'Upgrade to Pro', WOOCOMMERCE_CATALOG_ENQUIRY_TEXT_DOMAIN ) . '' 53 | ); 54 | return array_merge( $links, $row_meta ); 55 | }else{ 56 | return $links; 57 | } 58 | } 59 | 60 | /*if(!Woocommerce_Catalog_Enquiry_Dependencies::woocommerce_catalog_enquiry_pro_active_check()) {*/ 61 | if(!class_exists('Woocommerce_Catalog_Enquiry')) { 62 | require_once( trailingslashit(dirname(__FILE__)).'classes/class-woocommerce-catalog-enquiry.php' ); 63 | global $Woocommerce_Catalog_Enquiry; 64 | $Woocommerce_Catalog_Enquiry = new Woocommerce_Catalog_Enquiry( __FILE__ ); 65 | $GLOBALS['Woocommerce_Catalog_Enquiry'] = $Woocommerce_Catalog_Enquiry; 66 | } 67 | //} 68 | -------------------------------------------------------------------------------- /templates/woocommerce-catalog-enquiry-variable-product.php: -------------------------------------------------------------------------------- 1 | get_variation_attributes(); 16 | $attribute_keys = array_keys( $variation_attributes ); 17 | $attributes = $product->get_attributes(); 18 | $default_arrt_value = get_post_meta( $post->ID, '_default_attributes', true); 19 | $i = 0; 20 | if(get_transient('variation_list')){ 21 | $variation_list = get_transient('variation_list'); 22 | } 23 | if(isset($default_arrt_value) && is_array($default_arrt_value) && (!empty($default_arrt_value))) { 24 | foreach($default_arrt_value as $key => $value) { 25 | $vname = str_replace('pa_','',$key); 26 | $vname2 = str_replace('attribute_pa_', '', $vname); 27 | $vname2 = str_replace('attribute_','',$vname2); 28 | $arr = array('variation_name' => $vname2, 'variation_value' => $value, 'product_id' => $post->ID, 'variation_real_name' => 'attribute_'.$key); 29 | $variation_list[$i] = $arr; 30 | $i++; 31 | } 32 | set_transient('variation_list', $variation_list, 30 * MINUTE_IN_SECONDS); 33 | } 34 | ?> 35 | 36 | 37 |
38 | 39 | 40 | 41 | $options ) : $loop++; ?> 42 | 43 | 44 | 51 | 52 | 53 | 54 |
45 | get_variation_default_attribute( $name ); 47 | wc_dropdown_variation_attribute_options( array( 'options' => $options, 'attribute' => $name, 'product' => $product, 'selected' => $selected ) ); 48 | echo end( $attribute_keys ) === $name ? apply_filters( 'woocommerce_catalog_enquiry_reset_variations_link', '' . __( 'Clear', 'woocommerce' ) . '' ) : ''; 49 | ?> 50 |
55 | 56 | 57 |
58 | 74 |
75 | 76 | 77 | 78 | 79 |

80 | 81 | 82 | 83 |
84 | 85 | 86 | -------------------------------------------------------------------------------- /assets/admin/css/colorpicker_btn.css: -------------------------------------------------------------------------------- 1 | .colorpicker { 2 | width: 356px; 3 | height: 176px; 4 | overflow: hidden; 5 | position: absolute; 6 | background: url(../images/colorpicker_background.png); 7 | font-family: Arial, Helvetica, sans-serif; 8 | display: none; 9 | } 10 | .colorpicker_color { 11 | width: 150px; 12 | height: 150px; 13 | left: 14px; 14 | top: 13px; 15 | position: absolute; 16 | background: #f00; 17 | overflow: hidden; 18 | cursor: crosshair; 19 | } 20 | .colorpicker_color div { 21 | position: absolute; 22 | top: 0; 23 | left: 0; 24 | width: 150px; 25 | height: 150px; 26 | background: url(../images/colorpicker_overlay.png); 27 | } 28 | .colorpicker_color div div { 29 | position: absolute; 30 | top: 0; 31 | left: 0; 32 | width: 11px; 33 | height: 11px; 34 | overflow: hidden; 35 | background: url(../images/colorpicker_select.gif); 36 | margin: -5px 0 0 -5px; 37 | } 38 | .colorpicker_hue { 39 | position: absolute; 40 | top: 13px; 41 | left: 171px; 42 | width: 35px; 43 | height: 150px; 44 | cursor: n-resize; 45 | } 46 | .colorpicker_hue div { 47 | position: absolute; 48 | width: 35px; 49 | height: 9px; 50 | overflow: hidden; 51 | background: url(../images/colorpicker_indic.gif) left top; 52 | margin: -4px 0 0 0; 53 | left: 0px; 54 | } 55 | .colorpicker_new_color { 56 | position: absolute; 57 | width: 60px; 58 | height: 30px; 59 | left: 213px; 60 | top: 13px; 61 | background: #f00; 62 | } 63 | .colorpicker_current_color { 64 | position: absolute; 65 | width: 60px; 66 | height: 30px; 67 | left: 283px; 68 | top: 13px; 69 | background: #f00; 70 | } 71 | .colorpicker input { 72 | background-color: transparent; 73 | border: 1px solid transparent; 74 | position: absolute; 75 | font-size: 10px; 76 | font-family: Arial, Helvetica, sans-serif; 77 | color: #898989; 78 | top: 4px; 79 | right: 11px; 80 | text-align: right; 81 | margin: 0; 82 | padding: 0; 83 | height: 11px; 84 | } 85 | .colorpicker_hex { 86 | position: absolute; 87 | width: 72px; 88 | height: 22px; 89 | background: url(../images/colorpicker_hex.png) top; 90 | left: 212px; 91 | top: 142px; 92 | } 93 | .colorpicker_hex input { 94 | right: 6px; 95 | } 96 | .colorpicker_field { 97 | height: 22px; 98 | width: 62px; 99 | background-position: top; 100 | position: absolute; 101 | } 102 | .colorpicker_field span { 103 | position: absolute; 104 | width: 12px; 105 | height: 22px; 106 | overflow: hidden; 107 | top: 0; 108 | right: 0; 109 | cursor: n-resize; 110 | } 111 | .colorpicker_rgb_r { 112 | background-image: url(../images/colorpicker_rgb_r.png); 113 | top: 52px; 114 | left: 212px; 115 | } 116 | .colorpicker_rgb_g { 117 | background-image: url(../images/colorpicker_rgb_g.png); 118 | top: 82px; 119 | left: 212px; 120 | } 121 | .colorpicker_rgb_b { 122 | background-image: url(../images/colorpicker_rgb_b.png); 123 | top: 112px; 124 | left: 212px; 125 | } 126 | .colorpicker_hsb_h { 127 | background-image: url(../images/colorpicker_hsb_h.png); 128 | top: 52px; 129 | left: 282px; 130 | } 131 | .colorpicker_hsb_s { 132 | background-image: url(../images/colorpicker_hsb_s.png); 133 | top: 82px; 134 | left: 282px; 135 | } 136 | .colorpicker_hsb_b { 137 | background-image: url(../images/colorpicker_hsb_b.png); 138 | top: 112px; 139 | left: 282px; 140 | } 141 | .colorpicker_submit { 142 | position: absolute; 143 | width: 80px; 144 | height: 22px; 145 | color: #fff; 146 | font: 12px Georgia, Serif; 147 | right: 15px; 148 | text-align: right; 149 | bottom: 6px; 150 | cursor: pointer; 151 | overflow: hidden; 152 | } 153 | .colorpicker_submit:hover { 154 | text-decoration: underline; 155 | } 156 | .colorpicker_focus { 157 | background-position: center; 158 | } 159 | .colorpicker_hex.colorpicker_focus { 160 | background-position: bottom; 161 | } 162 | .colorpicker_submit.colorpicker_focus { 163 | background-position: bottom; 164 | } 165 | .colorpicker_slider { 166 | background-position: bottom; 167 | } 168 | -------------------------------------------------------------------------------- /assets/admin/js/admin.js: -------------------------------------------------------------------------------- 1 | jQuery(document).ready(function($) { 2 | $('#woo-userroles-list').select2(); 3 | $('#woo-user-list').select2(); 4 | $('#woo-product-list').select2(); 5 | $('#woo-category-list').select2(); 6 | 7 | if($('.is-override-form-heading').is(':checked')) { 8 | var parrent_ele = $('#custom-static-heading').parent().parent(); 9 | parrent_ele.show(); 10 | } 11 | else { 12 | var parrent_ele = $('#custom-static-heading').parent().parent(); 13 | parrent_ele.hide(); 14 | } 15 | if($('.is-page-redirect').is(':checked')) { 16 | var parrent_ele = $('#redirect-page-id').parent().parent(); 17 | parrent_ele.show(); 18 | } 19 | else { 20 | var parrent_ele = $('#redirect-page-id').parent().parent(); 21 | parrent_ele.hide(); 22 | } 23 | if($('.is-fileupload').is(':checked')) { 24 | var parrent_ele = $('#filesize-limit').parent().parent(); 25 | parrent_ele.show(); 26 | } 27 | else { 28 | var parrent_ele = $('#filesize-limit').parent().parent(); 29 | parrent_ele.hide(); 30 | } 31 | 32 | $('.is-override-form-heading').change(function() { 33 | if($(this).is(":checked")) { 34 | var parrent_ele = $('#custom-static-heading').parent().parent(); 35 | parrent_ele.show('slow'); 36 | } 37 | else { 38 | var parrent_ele = $('#custom-static-heading').parent().parent(); 39 | parrent_ele.hide('slow'); 40 | } 41 | }); 42 | $('.is-page-redirect').change(function() { 43 | if($(this).is(":checked")) { 44 | var parrent_ele = $('#redirect-page-id').parent().parent(); 45 | parrent_ele.show('slow'); 46 | } 47 | else { 48 | var parrent_ele = $('#redirect-page-id').parent().parent(); 49 | parrent_ele.hide('slow'); 50 | } 51 | }); 52 | $('.is-fileupload').change(function() { 53 | if($(this).is(":checked")) { 54 | var parrent_ele = $('#filesize-limit').parent().parent(); 55 | parrent_ele.show('slow'); 56 | } 57 | else { 58 | var parrent_ele = $('#filesize-limit').parent().parent(); 59 | parrent_ele.hide('slow'); 60 | } 61 | }); 62 | // Hide choose your button type select option 63 | var parrent_ele = $('#button-link-catalog').parent().parent(); 64 | parrent_ele.hide(); 65 | $('#button-type').change(function() { 66 | if( $(this).val() == 2 ){ 67 | var parrent_ele = $('#button-link-catalog').parent().parent(); 68 | parrent_ele.show(); 69 | }else{ 70 | var parrent_ele = $('#button-link-catalog').parent().parent(); 71 | parrent_ele.hide(); 72 | } 73 | }); 74 | 75 | if ($('#button-type').val() == 2) { 76 | var parrent_ele = $('#button-link-catalog').parent().parent(); 77 | parrent_ele.show(); 78 | } else { 79 | var parrent_ele = $('#button-link-catalog').parent().parent(); 80 | parrent_ele.hide(); 81 | } 82 | 83 | if($('.is_button').is(':checked')) { 84 | var parrent_ele = $('#Enquiry_Btn_wrapper').parent().parent(); 85 | parrent_ele.show(); 86 | } 87 | else { 88 | var parrent_ele = $('#Enquiry_Btn_wrapper').parent().parent(); 89 | parrent_ele.hide(); 90 | } 91 | 92 | $('.is_button').change(function() { 93 | if($(this).is(":checked")) { 94 | var parrent_ele = $('#Enquiry_Btn_wrapper').parent().parent(); 95 | parrent_ele.show('slow'); 96 | } 97 | else { 98 | var parrent_ele = $('#Enquiry_Btn_wrapper').parent().parent(); 99 | parrent_ele.hide('slow'); 100 | } 101 | }); 102 | 103 | $("#disable-cart-page-link").attr("disabled", "disabled"); 104 | /******* Dynamic link for disable cart page *********/ 105 | $('.is-hide-cart-checkout').change(function() { 106 | console.log( 'fasfsafasf' ); 107 | if($(this).is(":checked")) { 108 | var parrent_ele = $('#disable-cart-page-link').parent().parent(); 109 | parrent_ele.show('slow'); 110 | } 111 | else { 112 | var parrent_ele = $('#disable-cart-page-link').parent().parent(); 113 | parrent_ele.hide('slow'); 114 | } 115 | }); 116 | 117 | if($('.is-hide-cart-checkout').is(':checked')) { 118 | var parrent_ele = $('#disable-cart-page-link').parent().parent(); 119 | parrent_ele.show(); 120 | } 121 | else { 122 | var parrent_ele = $('#disable-cart-page-link').parent().parent(); 123 | parrent_ele.hide(); 124 | } 125 | 126 | }); 127 | -------------------------------------------------------------------------------- /classes/class-woocommerce-catalog-enquiry.php: -------------------------------------------------------------------------------- 1 | file = $file; 39 | $this->plugin_url = trailingslashit(plugins_url('', $plugin = $file)); 40 | $this->plugin_path = trailingslashit(dirname($file)); 41 | $this->token = WOOCOMMERCE_CATALOG_ENQUIRY_PLUGIN_TOKEN; 42 | $this->text_domain = WOOCOMMERCE_CATALOG_ENQUIRY_TEXT_DOMAIN; 43 | $this->version = WOOCOMMERCE_CATALOG_ENQUIRY_PLUGIN_VERSION; 44 | // default general setting 45 | $this->options_general_settings = get_option('woocommerce_catalog_enquiry_general_settings'); 46 | // from_setting 47 | $this->options_form_settings = get_option('woocommerce_catalog_enquiry_from_settings'); 48 | // exclusion setting 49 | $this->options_exclusion_settings = get_option('woocommerce_catalog_enquiry_exclusion_settings'); 50 | // button appearence 51 | $this->options_button_appearence_settings = get_option('woocommerce_catalog_enquiry_button_appearence_settings'); 52 | add_action('init', array(&$this, 'init'), 0); 53 | // Catalog Email setup 54 | add_filter('woocommerce_email_classes', array(&$this, 'woocommerce_catalog_enquiry_email_setup' )); 55 | } 56 | 57 | /** 58 | * initilize plugin on WP init 59 | */ 60 | function init() { 61 | 62 | // Init Text Domain 63 | $this->load_plugin_textdomain(); 64 | 65 | // Init library 66 | $this->load_class('library'); 67 | $this->library = new Woocommerce_Catalog_Enquiry_Library(); 68 | 69 | // Init ajax 70 | if(defined('DOING_AJAX')) { 71 | $this->load_class('ajax'); 72 | $this->ajax = new Woocommerce_Catalog_Enquiry_Ajax(); 73 | } 74 | 75 | if (is_admin()) { 76 | $this->load_class('admin'); 77 | $this->admin = new Woocommerce_Catalog_Enquiry_Admin(); 78 | } 79 | 80 | if (!is_admin() || defined('DOING_AJAX')) { 81 | $this->load_class('frontend'); 82 | $this->frontend = new Woocommerce_Catalog_Enquiry_Frontend(); 83 | } 84 | 85 | } 86 | 87 | /** 88 | * Load Localisation files. 89 | * 90 | * Note: the first-loaded translation file overrides any following ones if the same translation is present 91 | * 92 | * @access public 93 | * @return void 94 | */ 95 | public function load_plugin_textdomain() { 96 | $locale = is_admin() && function_exists('get_user_locale') ? get_user_locale() : get_locale(); 97 | $locale = apply_filters('woocommerce_catalog_enquiry_plugin_locale', $locale, 'woocommerce-catalog-enquiry'); 98 | load_textdomain('woocommerce-catalog-enquiry', WP_LANG_DIR . '/woocommerce-catalog-enquiry/woocommerce-catalog-enquiry-' . $locale . '.mo'); 99 | load_plugin_textdomain('woocommerce-catalog-enquiry', false, plugin_basename(dirname(dirname(__FILE__))) . '/languages'); 100 | } 101 | 102 | public function load_class($class_name = '') { 103 | if ('' != $class_name && '' != $this->token) { 104 | require_once ('class-' . esc_attr($this->token) . '-' . esc_attr($class_name) . '.php'); 105 | } // End If Statement 106 | }// End load_class() 107 | 108 | /** 109 | * Add WC Catalog Email 110 | * 111 | * @param emails default email classes 112 | * @return modified email classes 113 | */ 114 | function woocommerce_catalog_enquiry_email_setup( $emails ) { 115 | require_once( 'emails/class-woocommerce-catalog-enquiry-email.php' ); 116 | $emails['Woocommerce_Catalog_Enquiry_Email'] = new Woocommerce_Catalog_Enquiry_Email(); 117 | 118 | return $emails; 119 | } 120 | 121 | /** Cache Helpers *********************************************************/ 122 | 123 | /** 124 | * Sets a constant preventing some caching plugins from caching a page. Used on dynamic pages 125 | * 126 | * @access public 127 | * @return void 128 | */ 129 | function nocache() { 130 | if (!defined('DONOTCACHEPAGE')) 131 | define("DONOTCACHEPAGE", "true"); 132 | // WP Super Cache constant 133 | } 134 | 135 | } 136 | -------------------------------------------------------------------------------- /templates/emails/woocommerce-catalog-enquiry-admin.php: -------------------------------------------------------------------------------- 1 | 12 | 13 |

,

14 |

.

15 | 16 | 20 |

21 | 22 | 23 | 24 | 25 | 26 | get_sku()) { ?> 27 | 28 | 29 | 30 | 31 | 32 | 33 | 51 | 52 | get_sku()) { ?> 53 | 54 | 55 | 56 | 57 |
get_name(); ?> 34 | get_type() == 'variation') { 36 | if (isset($enquiry_data['variations']) && count($enquiry_data['variations']) > 0 ) { 37 | foreach ($enquiry_data['variations'] as $label => $value) { 38 | $label = str_replace( 'attribute_pa_', '', $label ); 39 | $label = str_replace( 'attribute_', '', $label ); 40 | echo "
".ucfirst($label).": ".ucfirst($value); 41 | } 42 | }else{ 43 | if ($product_obj->get_attributes()) { 44 | foreach ($product_obj->get_attributes() as $label => $value) { 45 | echo "
".ucfirst(wc_attribute_label($label)).": ".ucfirst($value); 46 | } 47 | } 48 | } 49 | } ?> 50 |
get_title(); ?>get_sku(); ?>
58 | 59 |

60 |

61 | : 62 | 63 |

64 |

65 | : 66 | 67 |

68 | 69 |

70 | 71 | 72 |

73 | 74 | 75 |

76 | 77 | 78 |

79 | 80 | 81 |

82 | 83 | 84 |

85 | 86 | 87 |

88 | 89 | 90 |

91 | 92 | 93 | 94 | 95 | 96 | 99 | 100 | 101 |
97 |

.

98 |
-------------------------------------------------------------------------------- /assets/admin/css/admin.css: -------------------------------------------------------------------------------- 1 | #woocommerce-catalog-admin-footer { 2 | bottom: 45px; 3 | text-align: center; 4 | text-decoration: none; 5 | border: none; 6 | margin-right: 5px; 7 | vertical-align: bottom; 8 | } 9 | 10 | 11 | .required { 12 | color: red; 13 | } 14 | 15 | .image-adv{ 16 | border:1px solid #ddd;display:inline-block; 17 | } 18 | .supt-link{ 19 | text-align: center;margin-bottom:0; 20 | } 21 | /*** From table ***/ 22 | .form-table .details_data { 23 | display: none; 24 | } 25 | .woocommerce-catalog-from-setting td:first-child { 26 | text-align: left; 27 | } 28 | .woocommerce-catalog-from-setting th:first-child { 29 | text-align: left; 30 | } 31 | .woocommerce-catalog-from-setting>tbody>tr>td, .table-bordered>tbody>tr>th, .table-bordered>tfoot>tr>td, .table-bordered>tfoot>tr>th, .table-bordered>thead>tr>td, .table-bordered>thead>tr>th { 32 | border: 1px ridge #d3dbe2; 33 | text-align: center; 34 | padding: 8px 10px; 35 | } 36 | 37 | .select2-container--default .select2-selection--multiple{ 38 | width: 25em; 39 | } 40 | .mvx-catalog-space{ 41 | margin: 10px 20px 0 2px; 42 | } 43 | .nav-tab-wrapper{ 44 | padding-left:20px; 45 | } 46 | .woocommerce-catalog-upgrade { 47 | background-color: #04be5b;color: #fff 48 | } 49 | 50 | 51 | /*************************** Button Gen Start ***************************/ 52 | 53 | .inside .button-box { 54 | height: 352px; 55 | width: 280px; 56 | max-width: 100%; 57 | position: relative; 58 | float: left; 59 | margin-top: 20px; 60 | background: transparent; 61 | border: 4px dashed #ddd; 62 | } 63 | 64 | .inside .button-box a { 65 | position: absolute; 66 | top: 42%; 67 | left: 18%; 68 | } 69 | 70 | .inside .buttonText { 71 | margin-bottom: 8px; 72 | } 73 | 74 | .inside .buttonText input { 75 | width: 100%; 76 | height: 30px; 77 | } 78 | 79 | .inside .controls { 80 | width: 250px; 81 | max-width: 100%; 82 | padding: 20px; 83 | float: left; 84 | } 85 | 86 | .controls label{ 87 | width: 85px; 88 | } 89 | .controls > div{ 90 | margin-bottom: 16px; 91 | } 92 | .controls > div:after, .inside #colors>div:after{ 93 | content:''; 94 | display: table; 95 | clear: both; 96 | } 97 | .inside .controls .ui-widget-content{ 98 | width: calc(100% - 125px); 99 | float: right; 100 | margin: 0; 101 | } 102 | 103 | .inside .button-box .button { 104 | position: absolute; 105 | } 106 | 107 | .inside .button-box .button { 108 | border-top: 1px solid #96d1f8; 109 | background: #3e779d; 110 | background: -webkit-gradient(linear, left top, left bottom, from(#65a9d7), to(#3e779d)); 111 | background: -moz-linear-gradient(top, #65a9d7, #3e779d); 112 | padding: 5px 10px; 113 | -webkit-border-radius: 8px; 114 | -moz-border-radius: 8px; 115 | border-radius: 8px; 116 | -webkit-box-shadow: black 0 1px 0; 117 | -moz-box-shadow: black 0 1px 0; 118 | box-shadow: black 0 1px 0; 119 | text-shadow: rgba(0, 0, 0, .4) 0 1px 0; 120 | color: white; 121 | font-size: 14px; 122 | text-decoration: none; 123 | vertical-align: middle; 124 | } 125 | 126 | .inside .button:hover { 127 | border-top-color: #28597a; 128 | background: #28597a; 129 | color: #ccc; 130 | } 131 | 132 | .inside .button:active { 133 | border-top-color: #1b435e; 134 | background: #1b435e; 135 | outline: 0; 136 | } 137 | 138 | .inside .sliderBar { 139 | margin: 0 0 10px 0; 140 | } 141 | 142 | .inside .ui-dialog-content { 143 | font: 12px Monaco, MonoSpace; 144 | } 145 | 146 | .inside .controls .ui-widget-content { 147 | background: none !important; 148 | border: 1px solid #aaaaaa !important; 149 | } 150 | 151 | .inside #colors>div { 152 | position: relative; 153 | width: 100%; 154 | height: 26px; 155 | margin: 0 0 8px 0; 156 | } 157 | 158 | .inside #colors>div>input { 159 | float: right; 160 | width: calc(100% - 170px); 161 | margin-top: 4px; 162 | color: transparent; 163 | } 164 | 165 | .inside #colors>div>label { 166 | float: left; 167 | width: 150px; 168 | margin: 6px 0 0; 169 | } 170 | 171 | .inside .colorpicker { 172 | z-index: 1000; 173 | } 174 | input[readonly].size-label { 175 | border: 0; 176 | margin: 0 0 0 5px; 177 | color: #0085ba; 178 | padding: 0 !important; 179 | width: 20px !important; 180 | display: inline-block !important; 181 | background: transparent; 182 | box-shadow: none; 183 | } 184 | .inside #colors>div.background-color-control>label{ 185 | width: 50%; 186 | } 187 | .inside #colors>div.background-color-control>label input[type=radio]{ 188 | margin: 0 0 0 5px; 189 | } 190 | 191 | @media screen and (max-width:480px){ 192 | .inside .controls .ui-widget-content, 193 | .inside #colors>div.background-color-control>label, 194 | .inside #colors>div>input{ 195 | width: 100%; 196 | } 197 | .inside .button-box{ 198 | height: 152px; 199 | width: 100%; 200 | } 201 | } -------------------------------------------------------------------------------- /classes/emails/class-woocommerce-catalog-enquiry-email.php: -------------------------------------------------------------------------------- 1 | id = 'wc_catalog_enquiry_admin'; 36 | $this->title = __( 'WC Catalog Enquiry admin', 'woocommerce-catalog-enquiry' ); 37 | $this->description = __( 'Admin will get an email when customer enquiry about a product', 'woocommerce-catalog-enquiry' ); 38 | 39 | $this->template_html = 'emails/woocommerce-catalog-enquiry-admin.php'; 40 | $this->template_plain = 'emails/plain/woocommerce-catalog-enquiry-admin.php'; 41 | 42 | $this->template_base = $Woocommerce_Catalog_Enquiry->plugin_path . 'templates/'; 43 | 44 | // Call parent constuctor 45 | parent::__construct(); 46 | } 47 | 48 | /** 49 | * trigger function. 50 | * 51 | * @access public 52 | * @return void 53 | */ 54 | function trigger( $recipient, $enquiry_data ) { 55 | 56 | $this->recipient = $recipient; 57 | $this->product_id = $enquiry_data['product_id']; 58 | $this->enquiry_data = $enquiry_data; 59 | $this->cust_name = $enquiry_data['cust_name']; 60 | $this->cust_email = $enquiry_data['cust_email']; 61 | $this->customer_email = $this->cust_email; 62 | 63 | if ( ! $this->is_enabled() || ! $this->get_recipient() ) { 64 | return; 65 | } 66 | 67 | $product = wc_get_product( $this->product_id ); 68 | 69 | $this->find[ ] = '{PRODUCT_NAME}'; 70 | $this->replace[ ] = $product->get_title(); 71 | 72 | $this->find[ ] = '{USER_NAME}'; 73 | $this->replace[ ] = $enquiry_data['cust_name']; 74 | 75 | // Set email attachments 76 | if(is_array($enquiry_data['attachments']) && count($enquiry_data['attachments']) > 0){ 77 | $this->attachments = $enquiry_data['attachments']; 78 | } 79 | 80 | $send = $this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() ); 81 | return $send; 82 | } 83 | 84 | /** 85 | * Get email subject. 86 | * 87 | * @since 1.4.7 88 | * @return string 89 | */ 90 | public function get_default_subject() { 91 | return apply_filters( 'woocommerce_catalog_enquiry_admin_email_subject', __( 'Product Enquiry for {PRODUCT_NAME} by {USER_NAME}', 'woocommerce-catalog-enquiry'), $this->object ); 92 | } 93 | 94 | /** 95 | * Get email heading. 96 | * 97 | * @since 1.4.7 98 | * @return string 99 | */ 100 | public function get_default_heading() { 101 | return apply_filters( 'woocommerce_catalog_enquiry_admin_email_heading', __( 'Enquiry for {PRODUCT_NAME}', 'woocommerce-catalog-enquiry'),$this->object ); 102 | } 103 | 104 | 105 | /** 106 | * Get email attachments. 107 | * 108 | * @return string 109 | */ 110 | public function get_attachments() { 111 | return apply_filters( 'woocommerce_catalog_enquiry_admin_email_attachments', $this->attachments, $this->id, $this->object ); 112 | } 113 | 114 | /** 115 | * Get email headers. 116 | * 117 | * @return string 118 | */ 119 | public function get_headers() { 120 | $header = "Content-Type: " . $this->get_content_type() . "\r\n"; 121 | $header .= 'Reply-to: ' . $this->cust_name . ' <' . $this->cust_email . ">\r\n"; 122 | return apply_filters( 'woocommerce_catalog_enquiry_admin_email_headers', $header, $this->id, $this->object ); 123 | } 124 | 125 | 126 | /** 127 | * get_content_html function. 128 | * 129 | * @access public 130 | * @return string 131 | */ 132 | function get_content_html() { 133 | ob_start(); 134 | wc_get_template( $this->template_html, array( 135 | 'email_heading' => $this->get_heading(), 136 | 'product_id' => $this->product_id, 137 | 'enquiry_data' => $this->enquiry_data, 138 | 'customer_email' => $this->customer_email, 139 | 'sent_to_admin' => true, 140 | 'plain_text' => false 141 | ), '', $this->template_base); 142 | return ob_get_clean(); 143 | } 144 | 145 | /** 146 | * get_content_plain function. 147 | * 148 | * @access public 149 | * @return string 150 | */ 151 | function get_content_plain() { 152 | ob_start(); 153 | wc_get_template( $this->template_plain, array( 154 | 'email_heading' => $this->get_heading(), 155 | 'product_id' => $this->product_id, 156 | 'enquiry_data' => $this->enquiry_data, 157 | 'customer_email' => $this->customer_email, 158 | 'sent_to_admin' => true, 159 | 'plain_text' => true 160 | ) ,'', $this->template_base ); 161 | return ob_get_clean(); 162 | } 163 | 164 | } 165 | 166 | endif; 167 | 168 | return new Woocommerce_Catalog_Enquiry_Email(); 169 | -------------------------------------------------------------------------------- /classes/class-woocommerce-catalog-enquiry-ajax.php: -------------------------------------------------------------------------------- 1 | errors['wp_mail_failed']) || isset($wp_error->error_data['wp_mail_failed'])) { 28 | if (isset($wp_error->error_data['wp_mail_failed']['phpmailer_exception_code'])) { 29 | $this->error_mail_report = 'Mailer Error: '.$wp_error->error_data['wp_mail_failed']['phpmailer_exception_code']; 30 | } 31 | if (isset($wp_error->errors['wp_mail_failed'][0])) { 32 | $this->error_mail_report .= ', '.$wp_error->errors['wp_mail_failed'][0]; 33 | } 34 | } 35 | } 36 | } 37 | 38 | public function send_product_enqury_mail() { 39 | global $Woocommerce_Catalog_Enquiry; 40 | 41 | // check catalog nonce 42 | if ( !isset( $_POST['wc_catalog_enq'] ) || !wp_verify_nonce( $_POST['wc_catalog_enq'], 'wc_catalog_enquiry_mail_form' ) ) { 43 | die(); 44 | } 45 | $status = $file_name = $target_file = ''; 46 | $attachments = array(); 47 | $settings = $Woocommerce_Catalog_Enquiry->options_general_settings; 48 | $settings_gen = $Woocommerce_Catalog_Enquiry->options_form_settings; 49 | 50 | if (isset($_FILES['fileupload'])) { 51 | 52 | foreach ($_FILES['fileupload'] as $key => $value) { 53 | $_FILES['fileupload'][$key] = $value[0]; 54 | } 55 | $woocommerce_customer_filesize = 2097152; 56 | if (isset($settings_gen['filesize_limit']) && !empty($settings_gen['filesize_limit'])) { 57 | $woocommerce_customer_filesize = intval($settings_gen['filesize_limit'])*1024*1024; 58 | } 59 | 60 | if (in_array($_FILES['fileupload']['type'], wp_get_mime_types())) { 61 | $file_name = mt_rand().'.'.explode(".",basename($_FILES['fileupload']['name']))[1]; 62 | // Check file size 63 | if ($_FILES['fileupload']['size'] <= $woocommerce_customer_filesize) { 64 | $target_file = sys_get_temp_dir().'/'.$file_name; 65 | if (move_uploaded_file($_FILES['fileupload']['tmp_name'], $target_file)) { 66 | $attachments[] = $target_file; 67 | } 68 | }else{ 69 | $status = 3; 70 | die; 71 | } 72 | }else{ 73 | $status = 2; 74 | die; 75 | } 76 | } 77 | 78 | $name = sanitize_text_field($_POST['woocommerce_customer_name']); 79 | $email = sanitize_email($_POST['woocommerce_customer_email']); 80 | $product_id = (int)$_POST['woocommerce_customer_product_id']; 81 | $subject = sanitize_text_field($_POST['woocommerce_customer_subject']); 82 | $phone = sanitize_text_field($_POST['woocommerce_customer_phone']); 83 | $comment = sanitize_text_field($_POST['woocommerce_customer_comment']); 84 | $address = sanitize_text_field($_POST['woocommerce_customer_address']); 85 | $product_name = sanitize_text_field($_POST['woocommerce_customer_product_name']); 86 | $product_url = esc_url($_POST['woocommerce_customer_product_url']); 87 | $enquiry_product_type = sanitize_text_field($_POST['enquiry_product_type']); 88 | $product_variations = (get_transient('variation_list')) ? get_transient('variation_list') : array(); 89 | 90 | if (isset($settings['is_other_admin_mail']) && $settings['is_other_admin_mail'] == 'Enable') { 91 | $email_admin = ''; 92 | } else { 93 | $email_admin = get_option( 'admin_email' ); 94 | } 95 | 96 | if (isset($settings['other_emails'])) { 97 | $email_admin .= ','.$settings['other_emails']; 98 | } 99 | 100 | $product = wc_get_product($product_id); 101 | 102 | if ($product) { 103 | $enquiry_data = apply_filters( 'woocommerce_catalog_enquiry_form_data', array( 104 | 'cust_name' => $name, 105 | 'cust_email' => $email, 106 | 'product_id' => $product_id, 107 | 'variations' => $product_variations, 108 | 'subject' => $subject, 109 | 'phone' => $phone, 110 | 'comment' => $comment, 111 | 'address' => $address, 112 | 'attachments' => $attachments, 113 | 'enquiry_product_type' => $product->get_type(), 114 | )); 115 | 116 | $send_email = WC()->mailer()->emails['Woocommerce_Catalog_Enquiry_Email']; 117 | 118 | if ($send_email->trigger( $email_admin, $enquiry_data )) { 119 | 120 | if (get_transient('variation_list')) { 121 | delete_transient('variation_list'); 122 | } 123 | // delete uploaded file from server temp if have 124 | if ($target_file) 125 | unlink($target_file); 126 | $status = 1; 127 | 128 | do_action('woocommerce_catalog_enquiry_after_enquiry_email_sent', $enquiry_data, $_POST); 129 | } 130 | else { 131 | // delete uploaded file from server temp if have 132 | if ($target_file) 133 | unlink($target_file); 134 | $status = 0; 135 | } 136 | }else{ 137 | // delete uploaded file from server temp if have 138 | if ($target_file) 139 | unlink($target_file); 140 | } 141 | wp_send_json(array('status' => $status, 'error_report' => $this->error_mail_report)); 142 | die(); 143 | } 144 | 145 | } -------------------------------------------------------------------------------- /framework/field-types/table_body.php: -------------------------------------------------------------------------------- 1 | 5 | array('title' => __('Name', 'woocommerce-catalog-enquiry'), 6 | 'id' => 'name-label', 7 | 'name' => 'form_name', 8 | 'label_for' => 'name-label', 9 | 'placeholder' => __('Default: Name' , 'woocommerce-catalog-enquiry') 10 | ), 11 | 12 | "form_email" => 13 | array('title' => __('Email', 'woocommerce-catalog-enquiry'), 14 | 'id' => 'email-label', 15 | 'name' => 'form_email', 16 | 'label_for' => 'email-label', 17 | 'placeholder' => __('Default: Email', 'woocommerce-catalog-enquiry') 18 | ), 19 | "form_phone" => 20 | array('title' => __('Phone', 'woocommerce-catalog-enquiry'), 21 | 'id' => 'is-phone', 22 | 'name' => 'form_phone', 23 | 'label_for' => 'phone-label', 24 | 'is_enable'=> 'Enable', 25 | 'placeholder' => __('Default: Phone', 'woocommerce-catalog-enquiry') 26 | 27 | ), 28 | 29 | "form_address" => 30 | array('title' => __('Address', 'woocommerce-catalog-enquiry'), 31 | 'id' => 'is-address', 32 | 'name' => 'form_address', 33 | 'label_for' => 'address-label', 34 | 'is_enable'=> 'Enable', 35 | 'placeholder' => __('Default: Address', 'woocommerce-catalog-enquiry') 36 | 37 | ), 38 | 39 | "form_subject" => 40 | array('title' => __('Enquiry About', 'woocommerce-catalog-enquiry'), 41 | 'id' => 'is-subject', 42 | 'name' => 'form_subject', 43 | 'label_for' => 'subject-label', 44 | 'is_enable'=> 'Enable', 45 | 'placeholder' => __('Default: Subject', 'woocommerce-catalog-enquiry') 46 | ), 47 | 48 | "form_comment" => 49 | array('title' => __('Enquiry Details', 'woocommerce-catalog-enquiry'), 50 | 'id' => 'is-comment', 51 | 'name' => 'form_comment', 52 | 'label_for' => 'comment-label', 53 | 'is_enable'=> 'Enable', 54 | 'placeholder' => __('Default: Comment', 'woocommerce-catalog-enquiry') 55 | ), 56 | "form_fileupload" => 57 | array('title' => __('File Upload', 'woocommerce-catalog-enquiry'), 58 | 'id' => 'is-fileupload', 59 | 'name' => 'form_fileupload', 60 | 'label_for' => 'fileupload-label', 61 | 'is_enable'=> 'Enable', 62 | 'placeholder' => __('Default: Upload', 'woocommerce-catalog-enquiry') 63 | ), 64 | 65 | "filesize_limit" => 66 | array('title' => __('File Upload Size Limit ( in MB )', 'woocommerce-catalog-enquiry'), 67 | 'id' => 'filesize-limit', 68 | 'name' => 'filesize_limit', 69 | 'label_for' => 'filesize-limit', 70 | 'type' => 'number', 71 | 'placeholder' => __('Default: Size Limit', 'woocommerce-catalog-enquiry') 72 | ), 73 | 74 | "form_captcha" => 75 | array( 76 | 'title' => __('Captcha', 'woocommerce-catalog-enquiry'), 77 | 'id' => 'is-captcha', 78 | 'name' => 'form_captcha', 79 | 'label_for' => 'captcha-label', 80 | 'is_enable'=> 'Enable', 81 | 'placeholder' => __('Default: Capta', 'woocommerce-catalog-enquiry') 82 | 83 | ), 84 | ) 85 | ); 86 | // from heading 87 | $from_heading = apply_filters( 'woocommerce_catalog_enquiry_from_heading', array( 88 | __( "Field Name", 'woocommerce-catalog-enquiry' ), 89 | __( "Enable / Disable", 'woocommerce-catalog-enquiry' ), 90 | __( "Set New Field Name", 'woocommerce-catalog-enquiry' ) 91 | 92 | ) ); 93 | 94 | if( apply_filters( 'woocommerce_catalog_enquiry_free_active', true ) ) { 95 | 96 | ?> 97 | 98 | 99 | 100 | 101 | $value_heading) { 103 | ?> 104 | 107 | 110 | 111 | 112 | 113 | $value) { 115 | ?> 116 | 117 | 122 | 130 | 142 | 143 | 146 | 147 |
105 | 106 |
118 | 121 | 123 |
"; 127 | } 128 | ?> 129 |
131 |
"; 139 | } 140 | ?> 141 |
148 |
149 | 150 | WooCommerce Catalog Enquiry Pro', 'woocommerce-catalog-enquiry', 'woocommerce-catalog-enquiry'); 153 | 154 | } 155 | 156 | do_action('woocommerce_catalog_enquiry_custom_form_fileds'); -------------------------------------------------------------------------------- /assets/frontend/css/frontend.css: -------------------------------------------------------------------------------- 1 | #woocommerce-catalog *{ 2 | box-sizing: border-box; 3 | } 4 | #woocommerce-catalog .noselect { 5 | -webkit-touch-callout: none; 6 | -webkit-user-select: none; 7 | -khtml-user-select: none; 8 | -moz-user-select: none; 9 | -ms-user-select: none; 10 | user-select: none; 11 | } 12 | #woocommerce-catalog #loader-after-sumitting-the-form { 13 | display:none; 14 | } 15 | .catalog_enquiry_form{ 16 | display:none; 17 | } 18 | 19 | #woocommerce-catalog .modal-content{ 20 | background-color: #fefefe; 21 | margin: auto; 22 | padding: 0; 23 | border: 1px solid #888; 24 | width: 600px; 25 | max-width: 90%; 26 | position: absolute; 27 | left: 50%; 28 | top: 50%; 29 | transform: translate(-50%, -50%); 30 | max-height: 90vh; 31 | overflow: auto; 32 | text-align: left; 33 | box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19); 34 | -webkit-animation-name: animatetop; 35 | -webkit-animation-duration: 0.4s; 36 | animation-name: animatetop; 37 | animation-duration: 0.4s; 38 | } 39 | 40 | /* The Close Button */ 41 | #woocommerce-catalog .modal-header button.close { 42 | padding: 3px; 43 | cursor: pointer; 44 | background: transparent; 45 | border: 0; 46 | min-height: auto; 47 | -webkit-appearance: none; 48 | margin: 0; 49 | float: right; 50 | font-size: 20px; 51 | font-weight: bold; 52 | line-height: 20px; 53 | color: #000000; 54 | text-shadow: 0 1px 0 #ffffff; 55 | opacity: 0.2; 56 | filter: alpha(opacity=20); 57 | position: absolute; 58 | right: 10px; 59 | top: 50%; 60 | transform: translateY(-50%); 61 | 62 | } 63 | /* modla header */ 64 | #woocommerce-catalog .modal-content .modal-header { 65 | padding: 12px 25px; 66 | border-bottom: 1px solid #eee; 67 | position: relative; 68 | } 69 | #woocommerce-catalog .modal-header h2{ 70 | margin: 0; 71 | font-size: 18px; 72 | width: calc(100% - 30px); 73 | } 74 | 75 | /* modla body */ 76 | #woocommerce-catalog .modal-body input[type="file"]{ 77 | width: auto; 78 | height: auto; 79 | max-width: 100%; 80 | } 81 | #woocommerce-catalog .modal-content .modal-body{ 82 | max-height: 52vh; 83 | overflow: auto; 84 | margin: 0; 85 | width: 100%; 86 | padding: 20px 25px 0 15px; 87 | } 88 | #woocommerce-catalog .cat-form-row input, #woocommerce-catalog .cat-form-row select, #woocommerce-catalog .cat-form-row textarea{ 89 | padding: 6px 10px; 90 | line-height: 15px; 91 | font-size: 15px; 92 | margin: 0; 93 | border: solid 1px #dcdcdc; 94 | box-shadow: none; 95 | color: #5d5d5d; 96 | width: 100%; 97 | background: #fff; 98 | height: 38px; 99 | } 100 | #woocommerce-catalog .cat-form-row textarea{ 101 | height: 100px; 102 | } 103 | #woocommerce-catalog p:empty { 104 | display: none; 105 | } 106 | #woocommerce-catalog p{ 107 | margin: 0 0 7px; 108 | line-height: 1.2; 109 | } 110 | #woocommerce-catalog .cat-form-row{ 111 | position: relative; 112 | } 113 | #woocommerce-catalog .cat-form-row label{ 114 | margin: 0 0 6px; 115 | font-size: 15px; 116 | line-height: 16px; 117 | font-weight: normal; 118 | color: #616161; 119 | } 120 | #woocommerce-catalog .cat-form-row{ 121 | margin: 0 0 15px; 122 | } 123 | #woocommerce-catalog p.catalog-enquiry-top-content, #woocommerce-catalog p.catalog-enquiry-bottom-content{ 124 | margin: 0 0 20px; 125 | font-size: 15px; 126 | line-height: 18px; 127 | color: #313131; 128 | } 129 | #woocommerce-catalog p.catalog-enquiry-bottom-content{ 130 | margin: 20px 0; 131 | } 132 | #woocommerce-catalog .captcha-wrap{ 133 | background:#000; 134 | color:#fff; 135 | border:1px solid #333; 136 | padding:5px; 137 | letter-spacing: 5px; 138 | font-size:18px; 139 | display: inline-block; 140 | vertical-align: middle; 141 | } 142 | #woocommerce-catalog .woocommerce-catalog-enquiry-btn{ 143 | float: none; 144 | width: auto; 145 | } 146 | /* modal footer */ 147 | #woocommerce-catalog .modal-content .modal-footer { 148 | padding: 14px 15px 15px; 149 | margin-bottom: 0; 150 | text-align: right; 151 | background-color: #f5f5f5; 152 | border-top: 1px solid #ddd; 153 | z-index: 1; 154 | position: relative; 155 | } 156 | 157 | #woocommerce-catalog .modal-footer button{ 158 | margin: 0 0 0 15px; 159 | padding: 5px 15px; 160 | width: 110px; 161 | height: auto; 162 | min-height: auto; 163 | line-height: 25px; 164 | font-size: 16px; 165 | border: 1px solid #555555; 166 | font-weight: normal; 167 | background: #fff; 168 | color: #555555; 169 | box-shadow: none; 170 | text-transform: uppercase; 171 | } 172 | #woocommerce-catalog .modal-footer button:hover{ 173 | background: #555; 174 | color: #fff; 175 | } 176 | @media screen and (max-width:768px){ 177 | #woocommerce-catalog .modal-content .modal-footer{ 178 | text-align: center; 179 | } 180 | #woocommerce-catalog .modal-content .modal-footer button{ 181 | padding: 2px 15px; 182 | width: 77px; 183 | font-size: 14px; 184 | } 185 | #woocommerce-catalog .modal-content .modal-header { 186 | padding: 8px 10px; 187 | } 188 | #woocommerce-catalog .modal-content .modal-body{ 189 | padding: 15px 15px 0 5px; 190 | } 191 | #woocommerce-catalog .modal-header h2{ 192 | font-size: 16px; 193 | } 194 | #woocommerce-catalog .cat-form-row label{ 195 | font-size: 14px; 196 | } 197 | #woocommerce-catalog .modal-content .modal-footer { 198 | padding: 10px 15px; 199 | } 200 | #woocommerce-catalog .cat-form-row input, #woocommerce-catalog .cat-form-row select, #woocommerce-catalog .cat-form-row textarea{ 201 | height: 33px; 202 | } 203 | #woocommerce-catalog .cat-form-row textarea { 204 | height: 70px; 205 | } 206 | } 207 | 208 | /* toogle form */ 209 | #woocommerce-catalog .catalog_enquiry_form:focus{ 210 | outline: none; 211 | } 212 | #woocommerce-catalog .catalog_enquiry_form{ 213 | background: #f1f1f1; 214 | padding: 15px; 215 | width: 100%; 216 | margin-top: 15px; 217 | clear: both; 218 | } 219 | #woocommerce-catalog .catalog_enquiry_form .modal-header h2{ 220 | margin: 0 0 15px; 221 | width: 100%; 222 | } 223 | #woocommerce-catalog .catalog_enquiry_form .modal-footer button{ 224 | margin: 0; 225 | } 226 | #msg-for-enquiry-error { 227 | color:#f00; text-align:center; 228 | } 229 | #msg-for-enquiry-sucesss { 230 | color:#0f0; text-align:center; 231 | } 232 | #loader-after-sumitting-the-form { 233 | text-align:center; 234 | } -------------------------------------------------------------------------------- /classes/class-woocommerce-catalog-enquiry-admin.php: -------------------------------------------------------------------------------- 1 | load_class('settings'); 13 | $this->settings = new Woocommerce_Catalog_Enquiry_Settings(); 14 | $this->init_product_settings(); 15 | } 16 | 17 | function load_class($class_name = '') { 18 | global $Woocommerce_Catalog_Enquiry; 19 | if ('' != $class_name) { 20 | require_once ($Woocommerce_Catalog_Enquiry->plugin_path . '/admin/class-' . esc_attr($Woocommerce_Catalog_Enquiry->token) . '-' . esc_attr($class_name) . '.php'); 21 | } // End If Statement 22 | } 23 | 24 | // End load_class() 25 | 26 | public function woocommerce_catalog_enquiry_admin_footer() { 27 | global $Woocommerce_Catalog_Enquiry; 28 | ?> 29 |
30 | 33 | options_general_settings; 39 | $options_button_appearence_settings = $Woocommerce_Catalog_Enquiry->options_button_appearence_settings; 40 | if (isset($settings['is_enable']) && $settings['is_enable'] == "Enable") { 41 | if (isset($options_button_appearence_settings['button_type']) && $options_button_appearence_settings['button_type'] == 3) { 42 | add_filter('woocommerce_product_data_tabs', array($this, 'catalog_product_data_tabs'), 99); 43 | add_action('woocommerce_product_data_panels', array($this, 'catalog_product_data_panel')); 44 | add_action('woocommerce_process_product_meta_simple', array($this, 'save_catalog_data')); 45 | add_action('woocommerce_process_product_meta_grouped', array($this, 'save_catalog_data')); 46 | add_action('woocommerce_process_product_meta_external', array($this, 'save_catalog_data')); 47 | add_action('woocommerce_process_product_meta_variable', array($this, 'save_catalog_data')); 48 | } 49 | } 50 | } 51 | 52 | public function catalog_product_data_tabs($tabs) { 53 | $tabs['woocommerce_catalog_enquiry'] = array( 54 | 'label' => __('Catalog Enquiry', 'catalog-enquiry'), 55 | 'target' => 'woocommerce-catalog-enquiry-product-data', 56 | 'class' => array(''), 57 | ); 58 | return $tabs; 59 | } 60 | 61 | /** 62 | * Save meta. 63 | * 64 | * Save the product catalog enquiry meta data. 65 | * 66 | * @since 1.0.0 67 | * 68 | * @param int $post_id ID of the post being saved. 69 | */ 70 | public function save_catalog_data($post_id) { 71 | 72 | // Save all meta 73 | update_post_meta($post_id, 'woocommerce_catalog_enquiry_product_link', esc_url($_POST['woocommerce_catalog_enquiry_product_link'])); 74 | } 75 | 76 | /** 77 | * Output catalog individual product link. 78 | * 79 | * Output settings to the product link tab. 80 | * 81 | * @since 1.0.0 82 | */ 83 | public function catalog_product_data_panel() { 84 | global $Woocommerce_Catalog_Enquiry; 85 | ?>
'woocommerce_catalog_enquiry_product_link', 88 | 'label' => __('Enter product external link', 'woocommerce-catalog-enquiry'), 89 | 'placeholder' => __('https://www.google.com', 'woocommerce-catalog-enquiry') 90 | )); 91 | ?>
id == 'toplevel_page_woo-catalog' ) : 104 | 105 | $Woocommerce_Catalog_Enquiry->library->load_qtip_lib(); 106 | $Woocommerce_Catalog_Enquiry->library->load_select2_lib(); 107 | $Woocommerce_Catalog_Enquiry->library->load_upload_lib(); 108 | $Woocommerce_Catalog_Enquiry->library->load_colorpicker_lib(); 109 | $Woocommerce_Catalog_Enquiry->library->load_datepicker_lib(); 110 | 111 | wp_enqueue_style( 'wp-color-picker' ); 112 | wp_enqueue_script('catalog_admin_js', $Woocommerce_Catalog_Enquiry->plugin_url . 'assets/admin/js/admin.js', array('jquery'), $Woocommerce_Catalog_Enquiry->version, true); 113 | wp_enqueue_style('catalog_admin_css', $Woocommerce_Catalog_Enquiry->plugin_url . 'assets/admin/css/admin.css', array(), $Woocommerce_Catalog_Enquiry->version); 114 | 115 | // Colorpicker css 116 | wp_enqueue_style('button_color_picker_css', $Woocommerce_Catalog_Enquiry->plugin_url . 'assets/admin/css/colorpicker_btn.css', array(), $Woocommerce_Catalog_Enquiry->version); 117 | // Colorpicker js 118 | wp_enqueue_script('button_color_picker_js', $Woocommerce_Catalog_Enquiry->plugin_url . 'assets/admin/js/colorpicker_btn.js', array('jquery'), $Woocommerce_Catalog_Enquiry->version, true); 119 | // Button js 120 | wp_enqueue_script('button_gen_js', $Woocommerce_Catalog_Enquiry->plugin_url . 'assets/admin/js/button_gen.js', array('jquery'), $Woocommerce_Catalog_Enquiry->version, true); 121 | 122 | wp_localize_script( 123 | 'button_gen_js', 124 | 'mvx_catalog_btn', 125 | array( 126 | 'custom_css' => isset($settings_buttons['custom_enquiry_buttons_css']) ? $settings_buttons['custom_enquiry_buttons_css'] : '', 127 | 'custom_cssStuff' => isset($settings_buttons['custom_enquiry_buttons_cssStuff']) ? $settings_buttons['custom_enquiry_buttons_cssStuff'] : '', 128 | 'custom_cssValues' => isset($settings_buttons['custom_enquiry_buttons_cssValues']) ? $settings_buttons['custom_enquiry_buttons_cssValues'] : '', 129 | )); 130 | 131 | endif; 132 | } 133 | } 134 | 135 | 136 | 137 | -------------------------------------------------------------------------------- /lib/jquery/qtip/qtip.css: -------------------------------------------------------------------------------- 1 | /* qTip2 v2.1.1 basic css3 | qtip2.com | Licensed MIT, GPL | Thu Jul 11 2013 14:03:02 */ 2 | .qtip{position:absolute;left:-28000px;top:-28000px;display:none;max-width:280px;min-width:50px;font-size:10.5px;line-height:12px;direction:ltr;box-shadow:none;padding:0}.qtip-content{position:relative;padding:5px 9px;overflow:hidden;text-align:left;word-wrap:break-word}.qtip-titlebar{position:relative;padding:5px 35px 5px 10px;overflow:hidden;border-width:0 0 1px;font-weight:700}.qtip-titlebar+.qtip-content{border-top-width:0!important}.qtip-close{position:absolute;right:-9px;top:-9px;cursor:pointer;outline:medium none;border-width:1px;border-style:solid;border-color:transparent}.qtip-titlebar .qtip-close{right:4px;top:50%;margin-top:-9px}* html .qtip-titlebar .qtip-close{top:16px}.qtip-titlebar .ui-icon,.qtip-icon .ui-icon{display:block;text-indent:-1000em;direction:ltr}.qtip-icon,.qtip-icon .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;text-decoration:none}.qtip-icon .ui-icon{width:18px;height:14px;line-height:14px;text-align:center;text-indent:0;font:400 bold 10px/13px Tahoma,sans-serif;color:inherit;background:transparent none no-repeat -100em -100em}.qtip-focus{}.qtip-hover{}.qtip-default{border-width:1px;border-style:solid;border-color:#F1D031;background-color:#FFFFA3;color:#555}.qtip-default .qtip-titlebar{background-color:#FFEF93}.qtip-default .qtip-icon{border-color:#CCC;background:#F1F1F1;color:#777}.qtip-default .qtip-titlebar .qtip-close{border-color:#AAA;color:#111} .qtip-light{background-color:#fff;border-color:#E2E2E2;color:#454545}.qtip-light .qtip-titlebar{background-color:#f1f1f1} .qtip-dark{background-color:#505050;border-color:#303030;color:#f3f3f3}.qtip-dark .qtip-titlebar{background-color:#404040}.qtip-dark .qtip-icon{border-color:#444}.qtip-dark .qtip-titlebar .ui-state-hover{border-color:#303030} .qtip-cream{background-color:#FBF7AA;border-color:#F9E98E;color:#A27D35}.qtip-cream .qtip-titlebar{background-color:#F0DE7D}.qtip-cream .qtip-close .qtip-icon{background-position:-82px 0} .qtip-red{background-color:#F78B83;border-color:#D95252;color:#912323}.qtip-red .qtip-titlebar{background-color:#F06D65}.qtip-red .qtip-close .qtip-icon{background-position:-102px 0}.qtip-red .qtip-icon{border-color:#D95252}.qtip-red .qtip-titlebar .ui-state-hover{border-color:#D95252} .qtip-green{background-color:#CAED9E;border-color:#90D93F;color:#3F6219}.qtip-green .qtip-titlebar{background-color:#B0DE78}.qtip-green .qtip-close .qtip-icon{background-position:-42px 0} .qtip-blue{background-color:#E5F6FE;border-color:#ADD9ED;color:#5E99BD}.qtip-blue .qtip-titlebar{background-color:#D0E9F5}.qtip-blue .qtip-close .qtip-icon{background-position:-2px 0}.qtip-shadow{-webkit-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);-moz-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);box-shadow:1px 1px 3px 1px rgba(0,0,0,.15)}.qtip-rounded,.qtip-tipsy,.qtip-bootstrap{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.qtip-rounded .qtip-titlebar{-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.qtip-youtube{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 3px #333;-moz-box-shadow:0 0 3px #333;box-shadow:0 0 3px #333;color:#fff;border-width:0;background:#4A4A4A;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,#000));background-image:-webkit-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-moz-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-ms-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-o-linear-gradient(top,#4A4A4A 0,#000 100%)}.qtip-youtube .qtip-titlebar{background-color:#4A4A4A;background-color:rgba(0,0,0,0)}.qtip-youtube .qtip-content{padding:.75em;font:12px arial,sans-serif;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#4a4a4a, EndColorStr=#000000);-ms-filter:"progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#4a4a4a, EndColorStr=#000000);"}.qtip-youtube .qtip-icon{border-color:#222}.qtip-youtube .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-jtools{background:#232323;background:rgba(0,0,0,.7);background-image:-webkit-gradient(linear,left top,left bottom,from(#717171),to(#232323));background-image:-moz-linear-gradient(top,#717171,#232323);background-image:-webkit-linear-gradient(top,#717171,#232323);background-image:-ms-linear-gradient(top,#717171,#232323);background-image:-o-linear-gradient(top,#717171,#232323);border:2px solid #ddd;border:2px solid rgba(241,241,241,1);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 12px #333;-moz-box-shadow:0 0 12px #333;box-shadow:0 0 12px #333}.qtip-jtools .qtip-titlebar{background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171, endColorstr=#4A4A4A);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171, endColorstr=#4A4A4A)"}.qtip-jtools .qtip-content{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A, endColorstr=#232323);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A, endColorstr=#232323)"}.qtip-jtools .qtip-titlebar,.qtip-jtools .qtip-content{background:transparent;color:#fff;border:0 dashed transparent}.qtip-jtools .qtip-icon{border-color:#555}.qtip-jtools .qtip-titlebar .ui-state-hover{border-color:#333}.qtip-cluetip{-webkit-box-shadow:4px 4px 5px rgba(0,0,0,.4);-moz-box-shadow:4px 4px 5px rgba(0,0,0,.4);box-shadow:4px 4px 5px rgba(0,0,0,.4);background-color:#D9D9C2;color:#111;border:0 dashed transparent}.qtip-cluetip .qtip-titlebar{background-color:#87876A;color:#fff;border:0 dashed transparent}.qtip-cluetip .qtip-icon{border-color:#808064}.qtip-cluetip .qtip-titlebar .ui-state-hover{border-color:#696952;color:#696952}.qtip-tipsy{background:#000;background:rgba(0,0,0,.87);color:#fff;border:0 solid transparent;font-size:11px;font-family:'Lucida Grande',sans-serif;font-weight:700;line-height:16px;text-shadow:0 1px #000}.qtip-tipsy .qtip-titlebar{padding:6px 35px 0 10px;background-color:transparent}.qtip-tipsy .qtip-content{padding:6px 10px}.qtip-tipsy .qtip-icon{border-color:#222;text-shadow:none}.qtip-tipsy .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-tipped{border:3px solid #959FA9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#F9F9F9;color:#454545;font-weight:400;font-family:serif}.qtip-tipped .qtip-titlebar{border-bottom-width:0;color:#fff;background:#3A79B8;background-image:-webkit-gradient(linear,left top,left bottom,from(#3A79B8),to(#2E629D));background-image:-webkit-linear-gradient(top,#3A79B8,#2E629D);background-image:-moz-linear-gradient(top,#3A79B8,#2E629D);background-image:-ms-linear-gradient(top,#3A79B8,#2E629D);background-image:-o-linear-gradient(top,#3A79B8,#2E629D);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8, endColorstr=#2E629D);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8, endColorstr=#2E629D)"}.qtip-tipped .qtip-icon{border:2px solid #285589;background:#285589}.qtip-tipped .qtip-icon .ui-icon{background-color:#FBFBFB;color:#555}.qtip-bootstrap{font-size:14px;line-height:20px;color:#333;padding:1px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.qtip-bootstrap .qtip-titlebar{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.qtip-bootstrap .qtip-titlebar .qtip-close{right:11px;top:45%;border-style:none}.qtip-bootstrap .qtip-content{padding:9px 14px}.qtip-bootstrap .qtip-icon{background:transparent}.qtip-bootstrap .qtip-icon .ui-icon{width:auto;height:auto;float:right;font-size:20px;font-weight:700;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.qtip-bootstrap .qtip-icon .ui-icon:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}.qtip:not(.ie9haxors) div.qtip-content,.qtip:not(.ie9haxors) div.qtip-titlebar{filter:none;-ms-filter:none}.qtip .qtip-tip{margin:0 auto;overflow:hidden;z-index:10}x:-o-prefocus,.qtip .qtip-tip{visibility:hidden}.qtip .qtip-tip,.qtip .qtip-tip .qtip-vml,.qtip .qtip-tip canvas{position:absolute;color:#123456;background:transparent;border:0 dashed transparent}.qtip .qtip-tip canvas{top:0;left:0}.qtip .qtip-tip .qtip-vml{behavior:url(#default#VML);display:inline-block;visibility:visible}#qtip-overlay{position:fixed;left:-10000em;top:-10000em}#qtip-overlay.blurs{cursor:pointer}#qtip-overlay div{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#000;opacity:.7;filter:alpha(opacity=70);-ms-filter:"alpha(Opacity=70)"}.qtipmodal-ie6fix{position:absolute!important} 3 | -------------------------------------------------------------------------------- /includes/woocommerce-catalog-enquiry-core-functions.php: -------------------------------------------------------------------------------- 1 | 6 |
7 |

', '', '', '', '', ' »' ); ?>

8 |
9 | $value) { 41 | if ( $key == 'myuserroles_list' ) { 42 | $update_new_exclution['woocommerce_userroles_list'] = $value; 43 | } 44 | if ( $key == 'myuser_list' ) { 45 | $update_new_exclution['woocommerce_user_list'] = $value; 46 | } 47 | if ( $key == 'myproduct_list' ) { 48 | $update_new_exclution['woocommerce_product_list'] = $value; 49 | } 50 | if ( $key == 'mycategory_list' ) { 51 | $update_new_exclution['woocommerce_category_list'] = $value; 52 | } 53 | } 54 | update_option( 'woocommerce_catalog_enquiry_exclusion_settings', $update_new_exclution ); 55 | } 56 | 57 | // New catalog button data 58 | if ( !empty( $woocommerce_catalog_old_button ) ) { 59 | update_option( 'woocommerce_catalog_enquiry_button_appearence_settings', $woocommerce_catalog_old_button ); 60 | } 61 | 62 | if ( !empty( $woocommerce_catalog_old_options ) ) { 63 | 64 | // Old catalog general data 65 | update_option( 'woocommerce_catalog_enquiry_general_settings', $woocommerce_catalog_old_options ); 66 | 67 | // name 68 | if ( isset( $woocommerce_catalog_old_options['name_label'] ) && $woocommerce_catalog_old_options['name_label'] != '' ){ 69 | 70 | $woocommerce_catalog_old_options['form_name'] = array( 'label' => $woocommerce_catalog_old_options['form_name'] ); 71 | } 72 | // Email 73 | if ( isset( $woocommerce_catalog_old_options['email_label'] ) && $woocommerce_catalog_old_options['email_label'] != '' ){ 74 | 75 | $woocommerce_catalog_old_options['form_email'] = array( 'label' => $woocommerce_catalog_old_options['form_email'] ); 76 | } 77 | // File upload limit 78 | if ( isset( $woocommerce_catalog_old_options['filesize_limit'] ) && $woocommerce_catalog_old_options['filesize_limit'] != '' ){ 79 | 80 | $woocommerce_catalog_old_options['filesize_limit'] = array( 'label' => $woocommerce_catalog_old_options['filesize_limit'] ); 81 | } 82 | 83 | // Subject 84 | if ( isset($woocommerce_catalog_old_options['is_subject']) && $woocommerce_catalog_old_options['is_subject'] == 'Enable' && isset( $woocommerce_catalog_old_options['subject_label'] ) && $woocommerce_catalog_old_options['subject_label'] != '' ){ 85 | 86 | $woocommerce_catalog_old_options['form_subject'] = array( 'label' => $woocommerce_catalog_old_options['subject_label'], 'is_enable' => 'Enable' ); 87 | } 88 | 89 | // phone 90 | if ( isset($woocommerce_catalog_old_options['is_phone']) && $woocommerce_catalog_old_options['is_phone'] == 'Enable' && isset( $woocommerce_catalog_old_options['phone_label'] ) && $woocommerce_catalog_old_options['phone_label'] != '' ){ 91 | 92 | $woocommerce_catalog_old_options['form_phone'] = array( 'label' => $woocommerce_catalog_old_options['phone_label'], 'is_enable' => 'Enable' ); 93 | } 94 | 95 | // Address 96 | if ( isset($woocommerce_catalog_old_options['is_address']) && $woocommerce_catalog_old_options['is_address'] == 'Enable' && isset( $woocommerce_catalog_old_options['address_label'] ) && $woocommerce_catalog_old_options['address_label'] != '' ){ 97 | $woocommerce_catalog_old_options['form_address'] = array( 'label' => $woocommerce_catalog_old_options['address_label'], 'is_enable' => 'Enable' ); 98 | } 99 | 100 | // comment 101 | if ( isset($woocommerce_catalog_old_options['is_comment']) && $woocommerce_catalog_old_options['is_comment'] == 'Enable' && isset( $woocommerce_catalog_old_options['comment_label'] ) && $woocommerce_catalog_old_options['comment_label'] != '' ){ 102 | $woocommerce_catalog_old_options['form_comment'] = array( 'label' => $woocommerce_catalog_old_options['comment_label'], 'is_enable' => 'Enable' ); 103 | } 104 | 105 | // file upload 106 | if ( isset($woocommerce_catalog_old_options['is_fileupload']) && $woocommerce_catalog_old_options['is_fileupload'] == 'Enable' && isset( $woocommerce_catalog_old_options['fileupload_label'] ) && $woocommerce_catalog_old_options['fileupload_label'] != '' ){ 107 | $woocommerce_catalog_old_options['form_fileupload'] = array( 'label' => $woocommerce_catalog_old_options['fileupload_label'], 'is_enable' => 'Enable' ); 108 | } 109 | 110 | // Capta label 111 | if ( isset($woocommerce_catalog_old_options['is_captcha']) && $woocommerce_catalog_old_options['is_captcha'] == 'Enable' && isset( $woocommerce_catalog_old_options['captcha_label'] ) && $woocommerce_catalog_old_options['captcha_label'] != '' ){ 112 | $woocommerce_catalog_old_options['form_captcha'] = array( 'label' => $woocommerce_catalog_old_options['captcha_label'], 'is_enable' => 'Enable' ); 113 | } 114 | 115 | update_option( 'woocommerce_catalog_enquiry_from_settings', $woocommerce_catalog_old_options ); 116 | 117 | } 118 | 119 | // By default set 120 | $general_settings = get_option( 'woocommerce_catalog_enquiry_general_settings' ); 121 | if ( is_array( $general_settings ) && !empty( $general_settings ) ){ 122 | $general_settings['for-user-type'] = 2; 123 | update_option( 'woocommerce_catalog_enquiry_general_settings', $general_settings ); 124 | } else { 125 | $general_settings = array(); 126 | $general_settings['for-user-type'] = 2; 127 | update_option( 'woocommerce_catalog_enquiry_general_settings', $general_settings ); 128 | } 129 | 130 | // set button type 131 | $button_settings = get_option( 'woocommerce_catalog_enquiry_button_appearence_settings' ); 132 | if ( is_array( $button_settings ) && !empty( $button_settings ) ){ 133 | $button_settings['button_type'] = 1; 134 | update_option( 'woocommerce_catalog_enquiry_button_appearence_settings', $button_settings ); 135 | } else { 136 | $button_settings = array(); 137 | $button_settings['button_type'] = 1; 138 | update_option( 'woocommerce_catalog_enquiry_button_appearence_settings', $button_settings ); 139 | } 140 | 141 | delete_option( 'dc_wc_Woocommerce_Catalog_Enquiry_general_settings_name' ); 142 | delete_option( 'dc_wc_Woocommerce_Catalog_Enquiry_button_settings_name' ); 143 | delete_option( 'dc_wc_Woocommerce_Catalog_Enquiry_exclusion_settings_name' ); 144 | 145 | update_option( 'woocommerce_catalog_migration_completed', 'migrated' ); 146 | endif; 147 | } 148 | } 149 | 150 | // find all wp users 151 | if (!function_exists('woocommerce_catalog_wp_users')) { 152 | 153 | function woocommerce_catalog_wp_users(){ 154 | $users = get_users(); 155 | $all_users = array(); 156 | foreach($users as $user) { 157 | $all_users[$user->data->ID] = $user->data->display_name; 158 | } 159 | return $all_users; 160 | } 161 | } 162 | 163 | // find all woocommerce product 164 | if (!function_exists('woocommerce_catalog_products')) { 165 | 166 | function woocommerce_catalog_products() { 167 | $args = apply_filters('woocommerce_catalog_limit_backend_product', array( 'posts_per_page' => -1, 'post_type' => 'product', 'post_status' => 'publish', 'orderby' => 'title', 'order' => 'ASC' )); 168 | $woocommerce_product = get_posts( $args ); 169 | $all_products = array(); 170 | foreach ( $woocommerce_product as $post => $value ){ 171 | $all_products[$value->ID] = $value->post_title; 172 | } 173 | return $all_products; 174 | } 175 | } 176 | // find all product caegory 177 | if (!function_exists('woocommerce_catalog_product_category')) { 178 | function woocommerce_catalog_product_category() { 179 | $all_product_cat = array(); 180 | $args = array( 'orderby' => 'name', 'order' => 'ASC' ); 181 | $terms = get_terms( 'product_cat', $args ); 182 | foreach ( $terms as $term) { 183 | $all_product_cat[$term->term_id] = $term->name; 184 | } 185 | return $all_product_cat; 186 | } 187 | } 188 | 189 | // Get all woocommerce pages 190 | if (!function_exists('woocommerce_catalog_wp_pages')) { 191 | 192 | function woocommerce_catalog_wp_pages() { 193 | $args = array( 'posts_per_page' => -1, 'post_type' => 'page', 'orderby' => 'title', 'order' => 'ASC' ); 194 | $wp_posts = get_posts( $args ); 195 | foreach ( $wp_posts as $post ) : setup_postdata( $post ); 196 | $page_array[$post->ID] = $post->post_title; 197 | endforeach; 198 | wp_reset_postdata(); 199 | return $page_array; 200 | } 201 | } -------------------------------------------------------------------------------- /assets/admin/js/button_gen.js: -------------------------------------------------------------------------------- 1 | jQuery(function($) { 2 | var cssText = '', 3 | forValue = ''; 4 | 5 | var cssStuff = {}; 6 | var cssValues = {}; 7 | 8 | // if user set custom style for button // 9 | if (mvx_catalog_btn.custom_cssStuff != '') { 10 | 11 | var userStyle = JSON.parse(mvx_catalog_btn.custom_cssStuff); 12 | if ($.isEmptyObject(userStyle)) { 13 | cssStuff['buttonPadding'] = "5px 10px"; 14 | cssStuff['backgroundBottom'] = "#65a9d7"; 15 | cssStuff['backgroundTop'] = "#3e779d"; 16 | cssStuff['borderColor'] = "#96d1f8"; 17 | cssStuff['borderRadius'] = "8px"; 18 | cssStuff['borderSize'] = "1px"; 19 | cssStuff['textColor'] = "white"; 20 | cssStuff['hoverColor'] = "#ccc"; 21 | cssStuff['hoverBackground'] = "#28597a"; 22 | cssStuff['activeBackground'] = "#1b435e"; 23 | cssStuff['fontSize'] = "14px"; 24 | cssStuff['fontStack'] = ""; 25 | } else { 26 | $.each(userStyle, function(index, value) { 27 | cssStuff[index] = value; 28 | }); 29 | } 30 | } else { 31 | cssStuff['buttonPadding'] = "5px 10px"; 32 | cssStuff['backgroundBottom'] = "#65a9d7"; 33 | cssStuff['backgroundTop'] = "#3e779d"; 34 | cssStuff['borderColor'] = "#96d1f8"; 35 | cssStuff['borderRadius'] = "8px"; 36 | cssStuff['borderSize'] = "1px"; 37 | cssStuff['textColor'] = "white"; 38 | cssStuff['hoverColor'] = "#ccc"; 39 | cssStuff['hoverBackground'] = "#28597a"; 40 | cssStuff['activeBackground'] = "#1b435e"; 41 | cssStuff['fontSize'] = "14px"; 42 | cssStuff['fontStack'] = ""; 43 | } 44 | 45 | // custom css generate fields values // 46 | if (mvx_catalog_btn.custom_cssValues != '') { 47 | 48 | var userStyleValue = JSON.parse(mvx_catalog_btn.custom_cssValues); 49 | if ($.isEmptyObject(userStyleValue)) { 50 | cssValues['sizer_value'] = 10; 51 | cssValues['fontsizer_value'] = 12; 52 | cssValues['borderrounder_value'] = 8; 53 | cssValues['bordersizer_value'] = 1; 54 | cssValues['backgroundBottom'] = "65a9d7"; 55 | cssValues['backgroundTop'] = "3e779d"; 56 | cssValues['borderColor'] = "96d1f8"; 57 | cssValues['hoverBackground'] = "28597a"; 58 | cssValues['textColor'] = "white"; 59 | cssValues['hoverColor'] = "cccccc"; 60 | cssValues['activeBackground'] = "1b435e"; 61 | } else { 62 | $.each(userStyleValue, function(index, value) { 63 | cssValues[index] = value; 64 | }); 65 | } 66 | } else { 67 | cssValues['sizer_value'] = 10; 68 | cssValues['fontsizer_value'] = 12; 69 | cssValues['borderrounder_value'] = 8; 70 | cssValues['bordersizer_value'] = 1; 71 | cssValues['backgroundBottom'] = "65a9d7"; 72 | cssValues['backgroundTop'] = "3e779d"; 73 | cssValues['borderColor'] = "96d1f8"; 74 | cssValues['hoverBackground'] = "28597a"; 75 | cssValues['textColor'] = "white"; 76 | cssValues['hoverColor'] = "cccccc"; 77 | cssValues['activeBackground'] = "1b435e"; 78 | } 79 | 80 | 81 | function createCSSValue() { 82 | $("#custom_enquiry_buttons_cssValues").val(JSON.stringify(cssValues)); 83 | } 84 | 85 | 86 | function createCSS() { 87 | cssText = " .custom_enquiry_buttons_css_new { "; 88 | cssText += " border: " + cssStuff['borderSize'] + " solid " + cssStuff['borderColor'] + " !important;"; 89 | 90 | cssText += " background: " + cssStuff['backgroundBottom'] + " !important;"; 91 | cssText += " background: -webkit-gradient(linear, left top, left bottom, from(" + cssStuff['backgroundTop'] + "), to(" + cssStuff['backgroundBottom'] + "))!important;"; 92 | cssText += " background: -moz-linear-gradient(top, " + cssStuff['backgroundTop'] + ", " + cssStuff['backgroundBottom'] + ")!important;"; 93 | 94 | cssText += " padding: " + cssStuff['buttonPadding'] + "!important;"; 95 | 96 | cssText += " -webkit-border-radius: " + cssStuff['borderRadius'] + " !important;"; 97 | cssText += " -moz-border-radius: " + cssStuff['borderRadius'] + " !important;"; 98 | cssText += " border-radius: " + cssStuff['borderRadius'] + " !important;"; 99 | 100 | /* cssText += " -webkit-box-shadow: rgba(0,0,0,1) 0 1px 0 !important;"; 101 | cssText += " -moz-box-shadow: rgba(0,0,0,1) 0 1px 0 !important;"; 102 | cssText += " box-shadow: rgba(0,0,0,1) 0 1px 0 !important;"; 103 | 104 | cssText += " text-shadow: rgba(0,0,0,.4) 0 1px 0 !important;";*/ 105 | 106 | cssText += " color: " + cssStuff['textColor'] + " !important;"; 107 | cssText += " font-size: " + cssStuff['fontSize'] + " !important;"; 108 | cssText += " font-family: " + cssStuff['fontStack'] + " !important;"; 109 | cssText += " text-decoration: none !important;"; 110 | cssText += " vertical-align: middle !important;"; 111 | 112 | cssText += " }"; 113 | 114 | cssText += " .custom_enquiry_buttons_css_new:hover { "; 115 | cssText += " border-top-color: " + cssStuff['hoverBackground'] + " !important;"; 116 | cssText += " background: " + cssStuff['hoverBackground'] + " !important;"; 117 | cssText += " color: " + cssStuff['hoverColor'] + " !important;"; 118 | cssText += " }"; 119 | 120 | cssText += " .custom_enquiry_buttons_css_new:active { "; 121 | cssText += " border-top-color: " + cssStuff['activeBackground'] + " !important;"; 122 | cssText += " background: " + cssStuff['activeBackground'] + " !important;"; 123 | cssText += " }"; 124 | 125 | $("head").append(""); 126 | $("#custom_enquiry_buttons_css").val(cssText); 127 | $("#custom_enquiry_buttons_cssStuff").val(JSON.stringify(cssStuff)); 128 | } 129 | 130 | function reCenterButton() { 131 | $(".custom_enquiry_buttons_css_new").position({ 132 | "my": "center center", 133 | "at": "center center", 134 | "of": $(".button-box") 135 | }); 136 | }; 137 | 138 | //$("head").append(""); // 139 | 140 | if (mvx_catalog_btn.custom_css != '') { 141 | $("head").append(""); 142 | $("#custom_enquiry_buttons_css").val(mvx_catalog_btn.custom_css); 143 | } else { 144 | reCenterButton(); 145 | createCSS(); 146 | createCSSValue(); 147 | } 148 | 149 | var sizeHandler = $('#sizer-handle'); 150 | $('#Enquiry_Btn_wrapper #sizer').slider({ 151 | value: cssValues['sizer_value'], 152 | min: 4, 153 | max: 40, 154 | create: function() { 155 | sizeHandler.text( $( this ).slider( "value" ) ); 156 | }, 157 | slide: function(event, ui) { 158 | cssStuff['buttonPadding'] = ui.value / 2 + "px " + ui.value + "px"; 159 | reCenterButton(); 160 | createCSS(); 161 | createCSSValue(); 162 | cssValues['sizer_value'] = ui.value; 163 | sizeHandler.text( ui.value ); 164 | } 165 | }); 166 | 167 | var fontsizeHandler = $('#font-sizer-handle'); 168 | $('#Enquiry_Btn_wrapper #font-sizer').slider({ 169 | value: cssValues['fontsizer_value'], 170 | min: 8, 171 | max: 24, 172 | create: function() { 173 | fontsizeHandler.text( $( this ).slider( "value" ) ); 174 | }, 175 | slide: function(event, ui) { 176 | cssStuff['fontSize'] = ui.value + "px"; 177 | reCenterButton(); 178 | createCSS(); 179 | createCSSValue(); 180 | cssValues['fontsizer_value'] = ui.value; 181 | fontsizeHandler.text( ui.value ); 182 | } 183 | }); 184 | 185 | var borderrounderHandler = $('#border-rounder-handle'); 186 | $('#Enquiry_Btn_wrapper #border-rounder').slider({ 187 | value: cssValues['borderrounder_value'], 188 | min: 0, 189 | max: 40, 190 | create: function() { 191 | borderrounderHandler.text( $( this ).slider( "value" ) ); 192 | }, 193 | slide: function(event, ui) { 194 | cssStuff['borderRadius'] = ui.value + "px"; 195 | createCSS(); 196 | createCSSValue(); 197 | cssValues['borderrounder_value'] = ui.value; 198 | borderrounderHandler.text( ui.value ); 199 | } 200 | }); 201 | 202 | var bordersizeHandler = $('#border-sizer-handle'); 203 | $('#Enquiry_Btn_wrapper #border-sizer').slider({ 204 | value: cssValues['bordersizer_value'], 205 | min: 0, 206 | max: 12, 207 | create: function() { 208 | bordersizeHandler.text( $( this ).slider( "value" ) ); 209 | }, 210 | slide: function(event, ui) { 211 | cssStuff['borderSize'] = ui.value + "px"; 212 | createCSS(); 213 | createCSSValue(); 214 | cssValues['bordersizer_value'] = ui.value; 215 | bordersizeHandler.text( ui.value ); 216 | } 217 | }); 218 | 219 | $('#Enquiry_Btn_wrapper .pickable').each(function(){ 220 | var forValue = $(this).attr("rel"); 221 | if (typeof cssValues[forValue] != "undefined") { 222 | console.log(cssValues[forValue]); 223 | $('.'+forValue).css('background-color','#'+cssValues[forValue]); 224 | } 225 | 226 | }); 227 | 228 | $('#Enquiry_Btn_wrapper .pickable').ColorPicker({ 229 | color: 'ff0000', 230 | onSubmit: function(hsb, hex, rgb, el) { 231 | $(el).val(hex).css("background", "#" + hex); 232 | $(el).ColorPickerHide(); 233 | 234 | forValue = $(el).attr("rel"); 235 | 236 | cssStuff[forValue] = "#" + hex; 237 | cssValues[forValue] = hex; 238 | createCSS(); 239 | createCSSValue(); 240 | 241 | }, 242 | onChange: function(hsb, hex, rgb, el) { 243 | 244 | $($(this).data('colorpicker').el).val(hex).css("background", "#" + hex); 245 | 246 | forValue = $($(this).data('colorpicker').el).attr("rel"); 247 | 248 | cssStuff[forValue] = "#" + hex; 249 | cssValues[forValue] = hex; 250 | createCSS(); 251 | createCSSValue(); 252 | 253 | }, 254 | onBeforeShow: function() { 255 | $(this).ColorPickerSetColor(this.value); 256 | } 257 | }); 258 | 259 | $("#Enquiry_Btn_wrapper #fontSelector").change(function() { 260 | 261 | cssStuff['fontStack'] = $(this).val(); 262 | cssValues['fontStack'] = $(this).val(); 263 | createCSS(); 264 | createCSSValue(); 265 | 266 | }); 267 | 268 | 269 | }); -------------------------------------------------------------------------------- /lib/jquery/select2/select2.css: -------------------------------------------------------------------------------- 1 | .select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb} 2 | -------------------------------------------------------------------------------- /assets/admin/css/chosen.css: -------------------------------------------------------------------------------- 1 | /* @group Base */ 2 | .chzn-container { 3 | font-size: 13px; 4 | position: relative; 5 | display: inline-block; 6 | zoom: 1; 7 | *display: inline; 8 | } 9 | .chzn-container .chzn-drop { 10 | background: #fff; 11 | border: 1px solid #aaa; 12 | border-top: 0; 13 | position: absolute; 14 | top: 29px; 15 | left: 0; 16 | -webkit-box-shadow: 0 4px 5px rgba(0,0,0,.15); 17 | -moz-box-shadow : 0 4px 5px rgba(0,0,0,.15); 18 | -o-box-shadow : 0 4px 5px rgba(0,0,0,.15); 19 | box-shadow : 0 4px 5px rgba(0,0,0,.15); 20 | z-index: 999; 21 | } 22 | /* @end */ 23 | 24 | /* @group Single Chosen */ 25 | .chzn-container-single .chzn-single { 26 | background-color: #fff; 27 | background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.5, white)); 28 | background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, white 50%); 29 | background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 50%); 30 | background-image: -o-linear-gradient(top, #eeeeee 0%,#ffffff 50%); 31 | background-image: -ms-linear-gradient(top, #eeeeee 0%,#ffffff 50%); 32 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff',GradientType=0 ); 33 | background-image: linear-gradient(top, #eeeeee 0%,#ffffff 50%); 34 | -webkit-border-radius: 4px; 35 | -moz-border-radius : 4px; 36 | border-radius : 4px; 37 | -moz-background-clip : padding; 38 | -webkit-background-clip: padding-box; 39 | background-clip : padding-box; 40 | border: 1px solid #aaa; 41 | display: block; 42 | overflow: hidden; 43 | white-space: nowrap; 44 | position: relative; 45 | height: 26px; 46 | line-height: 26px; 47 | padding: 0 0 0 8px; 48 | color: #444; 49 | text-decoration: none; 50 | } 51 | .chzn-container-single .chzn-single span { 52 | margin-right: 26px; 53 | display: block; 54 | overflow: hidden; 55 | white-space: nowrap; 56 | -o-text-overflow: ellipsis; 57 | -ms-text-overflow: ellipsis; 58 | text-overflow: ellipsis; 59 | } 60 | .chzn-container-single .chzn-single abbr { 61 | display: block; 62 | position: absolute; 63 | right: 26px; 64 | top: 8px; 65 | width: 12px; 66 | height: 13px; 67 | font-size: 1px; 68 | background: url(chosen-sprite.png) right top no-repeat; 69 | } 70 | .chzn-container-single .chzn-single abbr:hover { 71 | background-position: right -11px; 72 | } 73 | .chzn-container-single .chzn-single div { 74 | -webkit-border-radius: 0 4px 4px 0; 75 | -moz-border-radius : 0 4px 4px 0; 76 | border-radius : 0 4px 4px 0; 77 | -moz-background-clip : padding; 78 | -webkit-background-clip: padding-box; 79 | background-clip : padding-box; 80 | background: #ccc; 81 | background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee)); 82 | background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%); 83 | background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%); 84 | background-image: -o-linear-gradient(bottom, #ccc 0%, #eee 60%); 85 | background-image: -ms-linear-gradient(top, #cccccc 0%,#eeeeee 60%); 86 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cccccc', endColorstr='#eeeeee',GradientType=0 ); 87 | background-image: linear-gradient(top, #cccccc 0%,#eeeeee 60%); 88 | border-left: 1px solid #aaa; 89 | position: absolute; 90 | right: 0; 91 | top: 0; 92 | display: block; 93 | height: 100%; 94 | width: 18px; 95 | } 96 | .chzn-container-single .chzn-single div b { 97 | background: url('chosen-sprite.png') no-repeat 0 1px; 98 | display: block; 99 | width: 100%; 100 | height: 100%; 101 | } 102 | .chzn-container-single .chzn-search { 103 | padding: 3px 4px; 104 | position: relative; 105 | margin: 0; 106 | white-space: nowrap; 107 | z-index: 1010; 108 | } 109 | .chzn-container-single .chzn-search input { 110 | background: #fff url('chosen-sprite.png') no-repeat 100% -22px; 111 | background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee)); 112 | background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%); 113 | background: url('chosen-sprite.png') no-repeat 100% -22px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%); 114 | background: url('chosen-sprite.png') no-repeat 100% -22px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%); 115 | background: url('chosen-sprite.png') no-repeat 100% -22px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%); 116 | background: url('chosen-sprite.png') no-repeat 100% -22px, linear-gradient(top, #ffffff 85%,#eeeeee 99%); 117 | margin: 1px 0; 118 | padding: 4px 20px 4px 5px; 119 | outline: 0; 120 | border: 1px solid #aaa; 121 | font-family: sans-serif; 122 | font-size: 1em; 123 | } 124 | .chzn-container-single .chzn-drop { 125 | -webkit-border-radius: 0 0 4px 4px; 126 | -moz-border-radius : 0 0 4px 4px; 127 | border-radius : 0 0 4px 4px; 128 | -moz-background-clip : padding; 129 | -webkit-background-clip: padding-box; 130 | background-clip : padding-box; 131 | } 132 | /* @end */ 133 | 134 | .chzn-container-single-nosearch .chzn-search input { 135 | position: absolute; 136 | left: -9000px; 137 | } 138 | 139 | /* @group Multi Chosen */ 140 | .chzn-container-multi .chzn-choices { 141 | background-color: #fff; 142 | background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee)); 143 | background-image: -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%); 144 | background-image: -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%); 145 | background-image: -o-linear-gradient(bottom, white 85%, #eeeeee 99%); 146 | background-image: -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%); 147 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 ); 148 | background-image: linear-gradient(top, #ffffff 85%,#eeeeee 99%); 149 | border: 1px solid #aaa; 150 | margin: 0; 151 | padding: 0; 152 | cursor: text; 153 | overflow: hidden; 154 | height: auto !important; 155 | height: 1%; 156 | position: relative; 157 | } 158 | .chzn-container-multi .chzn-choices li { 159 | float: left; 160 | list-style: none; 161 | } 162 | .chzn-container-multi .chzn-choices .search-field { 163 | white-space: nowrap; 164 | margin: 0; 165 | padding: 0; 166 | } 167 | .chzn-container-multi .chzn-choices .search-field input { 168 | color: #666; 169 | background: transparent !important; 170 | border: 0 !important; 171 | padding: 5px; 172 | margin: 1px 0; 173 | outline: 0; 174 | -webkit-box-shadow: none; 175 | -moz-box-shadow : none; 176 | -o-box-shadow : none; 177 | box-shadow : none; 178 | } 179 | .chzn-container-multi .chzn-choices .search-field .default { 180 | color: #999; 181 | } 182 | .chzn-container-multi .chzn-choices .search-choice { 183 | -webkit-border-radius: 3px; 184 | -moz-border-radius : 3px; 185 | border-radius : 3px; 186 | -moz-background-clip : padding; 187 | -webkit-background-clip: padding-box; 188 | background-clip : padding-box; 189 | background-color: #e4e4e4; 190 | background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #e4e4e4), color-stop(0.7, #eeeeee)); 191 | background-image: -webkit-linear-gradient(center bottom, #e4e4e4 0%, #eeeeee 70%); 192 | background-image: -moz-linear-gradient(center bottom, #e4e4e4 0%, #eeeeee 70%); 193 | background-image: -o-linear-gradient(bottom, #e4e4e4 0%, #eeeeee 70%); 194 | background-image: -ms-linear-gradient(top, #e4e4e4 0%,#eeeeee 70%); 195 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e4e4e4', endColorstr='#eeeeee',GradientType=0 ); 196 | background-image: linear-gradient(top, #e4e4e4 0%,#eeeeee 70%); 197 | color: #333; 198 | border: 1px solid #b4b4b4; 199 | line-height: 13px; 200 | padding: 3px 19px 3px 6px; 201 | margin: 3px 0 3px 5px; 202 | position: relative; 203 | } 204 | .chzn-container-multi .chzn-choices .search-choice span { 205 | cursor: default; 206 | } 207 | .chzn-container-multi .chzn-choices .search-choice-focus { 208 | background: #d4d4d4; 209 | } 210 | .chzn-container-multi .chzn-choices .search-choice .search-choice-close { 211 | display: block; 212 | position: absolute; 213 | right: 3px; 214 | top: 4px; 215 | width: 12px; 216 | height: 13px; 217 | font-size: 1px; 218 | background: url(chosen-sprite.png) right top no-repeat; 219 | } 220 | .chzn-container-multi .chzn-choices .search-choice .search-choice-close:hover { 221 | background-position: right -11px; 222 | } 223 | .chzn-container-multi .chzn-choices .search-choice-focus .search-choice-close { 224 | background-position: right -11px; 225 | } 226 | /* @end */ 227 | 228 | /* @group Results */ 229 | .chzn-container .chzn-results { 230 | margin: 0 4px 4px 0; 231 | max-height: 190px; 232 | padding: 0 0 0 4px; 233 | position: relative; 234 | overflow-x: hidden; 235 | overflow-y: auto; 236 | } 237 | .chzn-container-multi .chzn-results { 238 | margin: -1px 0 0; 239 | padding: 0; 240 | } 241 | .chzn-container .chzn-results li { 242 | display: none; 243 | line-height: 80%; 244 | padding: 7px 7px 8px; 245 | margin: 0; 246 | list-style: none; 247 | } 248 | .chzn-container .chzn-results .active-result { 249 | cursor: pointer; 250 | display: list-item; 251 | } 252 | .chzn-container .chzn-results .highlighted { 253 | background: #3875d7; 254 | color: #fff; 255 | } 256 | .chzn-container .chzn-results li em { 257 | background: #feffde; 258 | font-style: normal; 259 | } 260 | .chzn-container .chzn-results .highlighted em { 261 | background: transparent; 262 | } 263 | .chzn-container .chzn-results .no-results { 264 | background: #f4f4f4; 265 | display: list-item; 266 | } 267 | .chzn-container .chzn-results .group-result { 268 | cursor: default; 269 | color: #999; 270 | font-weight: bold; 271 | } 272 | .chzn-container .chzn-results .group-option { 273 | padding-left: 20px; 274 | } 275 | .chzn-container-multi .chzn-drop .result-selected { 276 | display: none; 277 | } 278 | /* @end */ 279 | 280 | /* @group Active */ 281 | .chzn-container-active .chzn-single { 282 | -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3); 283 | -moz-box-shadow : 0 0 5px rgba(0,0,0,.3); 284 | -o-box-shadow : 0 0 5px rgba(0,0,0,.3); 285 | box-shadow : 0 0 5px rgba(0,0,0,.3); 286 | border: 1px solid #5897fb; 287 | } 288 | .chzn-container-active .chzn-single-with-drop { 289 | border: 1px solid #aaa; 290 | -webkit-box-shadow: 0 1px 0 #fff inset; 291 | -moz-box-shadow : 0 1px 0 #fff inset; 292 | -o-box-shadow : 0 1px 0 #fff inset; 293 | box-shadow : 0 1px 0 #fff inset; 294 | background-color: #eee; 295 | background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, white), color-stop(0.5, #eeeeee)); 296 | background-image: -webkit-linear-gradient(center bottom, white 0%, #eeeeee 50%); 297 | background-image: -moz-linear-gradient(center bottom, white 0%, #eeeeee 50%); 298 | background-image: -o-linear-gradient(bottom, white 0%, #eeeeee 50%); 299 | background-image: -ms-linear-gradient(top, #ffffff 0%,#eeeeee 50%); 300 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 ); 301 | background-image: linear-gradient(top, #ffffff 0%,#eeeeee 50%); 302 | -webkit-border-bottom-left-radius : 0; 303 | -webkit-border-bottom-right-radius: 0; 304 | -moz-border-radius-bottomleft : 0; 305 | -moz-border-radius-bottomright: 0; 306 | border-bottom-left-radius : 0; 307 | border-bottom-right-radius: 0; 308 | } 309 | .chzn-container-active .chzn-single-with-drop div { 310 | background: transparent; 311 | border-left: none; 312 | } 313 | .chzn-container-active .chzn-single-with-drop div b { 314 | background-position: -18px 1px; 315 | } 316 | .chzn-container-active .chzn-choices { 317 | -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3); 318 | -moz-box-shadow : 0 0 5px rgba(0,0,0,.3); 319 | -o-box-shadow : 0 0 5px rgba(0,0,0,.3); 320 | box-shadow : 0 0 5px rgba(0,0,0,.3); 321 | border: 1px solid #5897fb; 322 | } 323 | .chzn-container-active .chzn-choices .search-field input { 324 | color: #111 !important; 325 | } 326 | /* @end */ 327 | 328 | /* @group Disabled Support */ 329 | .chzn-disabled { 330 | cursor: default; 331 | opacity:0.5 !important; 332 | } 333 | .chzn-disabled .chzn-single { 334 | cursor: default; 335 | } 336 | .chzn-disabled .chzn-choices .search-choice .search-choice-close { 337 | cursor: default; 338 | } 339 | 340 | /* @group Right to Left */ 341 | .chzn-rtl { direction:rtl;text-align: right; } 342 | .chzn-rtl .chzn-single { padding-left: 0; padding-right: 8px; } 343 | .chzn-rtl .chzn-single span { margin-left: 26px; margin-right: 0; } 344 | .chzn-rtl .chzn-single div { 345 | left: 0; right: auto; 346 | border-left: none; border-right: 1px solid #aaaaaa; 347 | -webkit-border-radius: 4px 0 0 4px; 348 | -moz-border-radius : 4px 0 0 4px; 349 | border-radius : 4px 0 0 4px; 350 | } 351 | .chzn-rtl .chzn-single abbr { 352 | left: 26px; 353 | right: auto; 354 | } 355 | .chzn-rtl .chzn-choices li { float: right; } 356 | .chzn-rtl .chzn-choices .search-choice { padding: 3px 6px 3px 19px; margin: 3px 5px 3px 0; } 357 | .chzn-rtl .chzn-choices .search-choice .search-choice-close { left: 5px; right: auto; background-position: right top;} 358 | .chzn-rtl.chzn-container-single .chzn-results { margin-left: 4px; margin-right: 0; padding-left: 0; padding-right: 4px; } 359 | .chzn-rtl .chzn-results .group-option { padding-left: 0; padding-right: 20px; } 360 | .chzn-rtl.chzn-container-active .chzn-single-with-drop div { border-right: none; } 361 | .chzn-rtl .chzn-search input { 362 | background: url('chosen-sprite.png') no-repeat -38px -22px, #ffffff; 363 | background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee)); 364 | background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%); 365 | background: url('chosen-sprite.png') no-repeat -38px -22px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%); 366 | background: url('chosen-sprite.png') no-repeat -38px -22px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%); 367 | background: url('chosen-sprite.png') no-repeat -38px -22px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%); 368 | background: url('chosen-sprite.png') no-repeat -38px -22px, linear-gradient(top, #ffffff 85%,#eeeeee 99%); 369 | padding: 4px 5px 4px 20px; 370 | } 371 | /* @end */ 372 | -------------------------------------------------------------------------------- /assets/frontend/js/frontend.js: -------------------------------------------------------------------------------- 1 | jQuery(document).ready(function($) { 2 | 3 | var block = function( $node ) { 4 | if ( ! is_blocked( $node ) ) { 5 | $node.addClass( 'processing' ).block( { 6 | message: null, 7 | overlayCSS: { 8 | background: '#fff', 9 | opacity: 0.6 10 | } 11 | } ); 12 | } 13 | }; 14 | 15 | var is_blocked = function( $node ) { 16 | return $node.is( '.processing' ) || $node.parents( '.processing' ).length; 17 | }; 18 | 19 | var unblock = function( $node ) { 20 | $node.removeClass( 'processing' ).unblock(); 21 | }; 22 | 23 | // variation id 24 | $(window).bind('found_variation', function (event, variation) { 25 | if (variation == null) { 26 | } else { 27 | var variation_data = {}; 28 | var count = 0; 29 | var chosen = 0; 30 | var variation_selector = ''; 31 | var variation_id = ''; 32 | if (event.hasOwnProperty('target')) { 33 | variation_selector = event.target; 34 | } else { 35 | variation_selector = 'form.variations_form.cart'; 36 | } 37 | 38 | $(variation_selector).find('.variations select').each(function () { 39 | var attribute_name = $(this).data('attribute_name') || $(this).attr('name'); 40 | var value = $(this).val() || ''; 41 | 42 | if (value.length > 0) { 43 | chosen++; 44 | } 45 | 46 | count++; 47 | variation_data[ attribute_name ] = value; 48 | }); 49 | 50 | if (variation.hasOwnProperty('id')) { 51 | variation_id = variation.id; 52 | $('#product-id-for-enquiry').val(variation.id); 53 | } else if (variation.hasOwnProperty('variation_id')) { 54 | variation_id = variation.variation_id; 55 | $('#product-id-for-enquiry').val(variation.variation_id); 56 | } else { 57 | variation_id = $('form.variations_form').attr("data-product_id"); 58 | $('#product-id-for-enquiry').val($('form.variations_form').attr("data-product_id")); 59 | } 60 | 61 | var ajax_url = catalog_enquiry_front.ajaxurl; 62 | var data = { 63 | 'action': 'add_variation_for_enquiry_mail', 64 | 'product_id': variation_id, 65 | 'variation_data': variation_data 66 | }; 67 | $.post(ajax_url, data, function (response) { 68 | console.log(response); 69 | }); 70 | } 71 | }).trigger( 'found_variation' ); 72 | //$('.variations_form').trigger('found_variation'); 73 | 74 | // Modal Close 75 | $("#woocommerce-catalog .catalog-modal .close, #woocommerce-catalog .catalog-modal .btn-default").on('click', function () { 76 | //$("#responsive").hide(); 77 | $("#responsive").slideToggle(500); 78 | }); 79 | 80 | $('#woocommerce-catalog .woocommerce-catalog-enquiry-btn').on('click', function () { 81 | $("#woocommerce-catalog #responsive").slideToggle(1000); 82 | }); 83 | 84 | 85 | $('#woocommerce-submit-enquiry').on('click', function(){ 86 | 87 | var name = document.getElementById('woocommerce-user-name').value; 88 | var email = document.getElementById('woocommerce-user-email').value; 89 | var nonce = document.getElementById('wc_catalog_enq').value; 90 | var enquiry_product_type = document.getElementById('enquiry-product-type').value; 91 | var subject = ''; 92 | var phone = ''; 93 | var address = ''; 94 | var comment = ''; 95 | var fd = new FormData(); 96 | var json_arr = catalog_enquiry_front.json_arr; 97 | if (json_arr.indexOf("subject") != -1) { 98 | subject = document.getElementById('woocommerce-user-subject').value; 99 | } 100 | if (json_arr.indexOf("phone") != -1) { 101 | phone = document.getElementById('woocommerce-user-phone').value; 102 | } 103 | if (json_arr.indexOf("address") != -1) { 104 | address = document.getElementById('woocommerce-user-address').value; 105 | } 106 | if (json_arr.indexOf("comment") != -1) { 107 | comment = document.getElementById('woocommerce-user-comment').value; 108 | } 109 | if (json_arr.indexOf("fileupload") != -1) { 110 | var files_data = jQuery('#woocommerce-user-fileupload'); 111 | jQuery.each(jQuery(files_data), function (i, obj) { 112 | jQuery.each(obj.files, function (j, file) { 113 | fd.append('fileupload[' + j + ']', file); 114 | }) 115 | }); 116 | } 117 | var product_name = document.getElementById('product-name-for-enquiry').value; 118 | var product_url = document.getElementById('product-url-for-enquiry').value; 119 | var product_id = document.getElementById('product-id-for-enquiry').value; 120 | 121 | if ( typeof(catalog_enquiry_front.settings_gen.form_captcha) != 'undefined' && typeof (catalog_enquiry_front.settings_gen.form_captcha.is_enable) != 'undefined' && catalog_enquiry_front.settings_gen.form_captcha.is_enable !== null && catalog_enquiry_front.settings_gen.form_captcha.is_enable == "Enable") { 122 | var captcha = document.getElementById('woocommerce-catalog-captcha'); 123 | } 124 | 125 | if (name == '' || name == ' ') { 126 | document.getElementById('msg-for-enquiry-error').innerHTML = catalog_enquiry_front.error_levels.name_required; 127 | document.getElementById('woocommerce-user-name').focus(); 128 | return false; 129 | } 130 | 131 | if (email == '' || email == ' ') { 132 | document.getElementById('msg-for-enquiry-error').innerHTML = catalog_enquiry_front.error_levels.email_required; 133 | document.getElementById('woocommerce-user-email').focus(); 134 | return false; 135 | } 136 | if (!validateEmail(email)) { 137 | document.getElementById('msg-for-enquiry-error').innerHTML = catalog_enquiry_front.error_levels.email_valid; 138 | document.getElementById('woocommerce-user-email').focus(); 139 | return false; 140 | } 141 | 142 | if ( typeof(catalog_enquiry_front.settings_gen.form_captcha) != 'undefined' && typeof (catalog_enquiry_front.settings_gen.form_captcha.is_enable) != 'undefined' && catalog_enquiry_front.settings_gen.form_captcha.is_enable !== null && catalog_enquiry_front.settings_gen.form_captcha.is_enable == "Enable") { 143 | 144 | if (captcha.value == '' || captcha.value == ' ') { 145 | document.getElementById('msg-for-enquiry-error').innerHTML = catalog_enquiry_front.error_levels.captcha_required; 146 | document.getElementById('woocommerce-catalog-captcha').focus(); 147 | return false; 148 | } 149 | if (captcha.value != catalog_enquiry_front.captcha) { 150 | document.getElementById('msg-for-enquiry-error').innerHTML = catalog_enquiry_front.error_levels.captcha_valid; 151 | document.getElementById('woocommerce-catalog-captcha').focus(); 152 | return false; 153 | } 154 | } 155 | block($( '#responsive' )); 156 | jQuery("#loader-after-sumitting-the-form").show(); 157 | jQuery('#msg-for-enquiry-error').html(''); 158 | 159 | var ajax_url = catalog_enquiry_front.ajaxurl; 160 | if (json_arr.indexOf("fileupload") != -1) { 161 | fd.append('action', 'send_enquiry_mail'); 162 | fd.append('wc_catalog_enq', nonce); 163 | fd.append('woocommerce_customer_name', name); 164 | fd.append('woocommerce_customer_email', email); 165 | fd.append('woocommerce_customer_subject', subject); 166 | fd.append('woocommerce_customer_phone', phone); 167 | fd.append('woocommerce_customer_address', address); 168 | fd.append('woocommerce_customer_comment', comment); 169 | fd.append('woocommerce_customer_product_name', product_name); 170 | fd.append('woocommerce_customer_product_url', product_url); 171 | fd.append('woocommerce_customer_product_id', product_id); 172 | fd.append('enquiry_product_type', enquiry_product_type); 173 | jQuery.ajax({ 174 | type: 'post', 175 | url: ajax_url, 176 | data: fd, 177 | contentType: false, 178 | cache: false, 179 | processData: false, 180 | success: function (response) { 181 | unblock($( '#responsive' )); 182 | if (response.status == 1) { 183 | jQuery("#loader-after-sumitting-the-form").hide(); 184 | jQuery('#msg-for-enquiry-sucesss').html(''); 185 | jQuery('#msg-for-enquiry-sucesss').html(catalog_enquiry_front.ajax_success_msg); 186 | jQuery('#woocommerce-user-name').val(''); 187 | jQuery('#woocommerce-user-email').val(''); 188 | jQuery('#woocommerce-catalog-captcha').val(''); 189 | if (json_arr.indexOf("subject") != -1) { 190 | jQuery('#woocommerce-user-subject').val(''); 191 | } 192 | if (json_arr.indexOf("phone") != -1) { 193 | jQuery('#woocommerce-user-phone').val(''); 194 | } 195 | if (json_arr.indexOf("address") != -1) { 196 | jQuery('#woocommerce-user-address').val(''); 197 | 198 | } 199 | if (json_arr.indexOf("comment") != -1) { 200 | jQuery('#woocommerce-user-comment').val(''); 201 | } 202 | if (json_arr.indexOf("fileupload") != -1) { 203 | jQuery('#woocommerce-user-fileupload').val(''); 204 | } 205 | 206 | if (typeof (catalog_enquiry_front.settings.is_page_redirect) != 'undefined' && catalog_enquiry_front.settings_gen.is_page_redirect !== null) { 207 | window.location.href = catalog_enquiry_front.redirect_link; 208 | } 209 | } else if (response.status == 2) { 210 | jQuery("#loader-after-sumitting-the-form").hide(); 211 | jQuery('#msg-for-enquiry-sucesss').html(''); 212 | jQuery('#msg-for-enquiry-error').html(catalog_enquiry_front.error_levels.filetype_error); 213 | } else if (response.status == 3) { 214 | jQuery("#loader-after-sumitting-the-form").hide(); 215 | jQuery('#msg-for-enquiry-sucesss').html(''); 216 | jQuery('#msg-for-enquiry-error').html(catalog_enquiry_front.error_levels.filesize_error); 217 | } else { 218 | jQuery("#loader-after-sumitting-the-form").hide(); 219 | jQuery('#msg-for-enquiry-sucesss').html(''); 220 | if (response.error_report != '') { 221 | jQuery('#msg-for-enquiry-error').html(response.error_report); 222 | } else { 223 | jQuery('#msg-for-enquiry-error').html(catalog_enquiry_front.error_levels.ajax_error); 224 | } 225 | } 226 | } 227 | }); 228 | 229 | } else { 230 | var data = { 231 | 'action': 'send_enquiry_mail', 232 | 'wc_catalog_enq': nonce, 233 | 'woocommerce_customer_name': name, 234 | 'woocommerce_customer_email': email, 235 | 'woocommerce_customer_subject': subject, 236 | 'woocommerce_customer_phone': phone, 237 | 'woocommerce_customer_address': address, 238 | 'woocommerce_customer_comment': comment, 239 | 'woocommerce_customer_product_name': product_name, 240 | 'woocommerce_customer_product_url': product_url, 241 | 'woocommerce_customer_product_id': product_id, 242 | 'enquiry_product_type': enquiry_product_type 243 | 244 | }; 245 | jQuery.post(ajax_url, data, function (response) { 246 | unblock($( '#responsive' )); 247 | if (response.status == 1) { 248 | jQuery("#loader-after-sumitting-the-form").hide(); 249 | jQuery('#msg-for-enquiry-sucesss').html(''); 250 | jQuery('#msg-for-enquiry-sucesss').html(catalog_enquiry_front.ajax_success_msg); 251 | jQuery('#woocommerce-user-name').val(''); 252 | jQuery('#woocommerce-user-email').val(''); 253 | jQuery('#woocommerce-catalog-captcha').val(''); 254 | if (json_arr.indexOf("subject") != -1) { 255 | jQuery('#woocommerce-user-subject').val(''); 256 | } 257 | if (json_arr.indexOf("phone") != -1) { 258 | jQuery('#woocommerce-user-phone').val(''); 259 | } 260 | if (json_arr.indexOf("address") != -1) { 261 | jQuery('#woocommerce-user-address').val(''); 262 | 263 | } 264 | if (json_arr.indexOf("comment") != -1) { 265 | jQuery('#woocommerce-user-comment').val(''); 266 | } 267 | if (typeof (catalog_enquiry_front.settings.is_page_redirect) != 'undefined' && catalog_enquiry_front.settings_gen.is_page_redirect !== null) { 268 | window.location.href = catalog_enquiry_front.redirect_link; 269 | } 270 | } else if (response.status == 2) { 271 | jQuery("#loader-after-sumitting-the-form").hide(); 272 | jQuery('#msg-for-enquiry-sucesss').html(''); 273 | jQuery('#msg-for-enquiry-error').html(catalog_enquiry_front.error_levels.filetype_error); 274 | } else if (response.status == 3) { 275 | jQuery("#loader-after-sumitting-the-form").hide(); 276 | jQuery('#msg-for-enquiry-sucesss').html(''); 277 | jQuery('#msg-for-enquiry-error').html(catalog_enquiry_front.error_levels.filesize_error); 278 | } else { 279 | jQuery("#loader-after-sumitting-the-form").hide(); 280 | jQuery('#msg-for-enquiry-sucesss').html(''); 281 | if (response.error_report != '') { 282 | jQuery('#msg-for-enquiry-error').html(response.error_report); 283 | } else { 284 | jQuery('#msg-for-enquiry-error').html(catalog_enquiry_front.error_levels.ajax_error); 285 | } 286 | } 287 | }); 288 | } 289 | }); 290 | 291 | var modal = document.getElementById('responsive'); 292 | window.onclick = function (event) { 293 | if (event.target == modal) { 294 | modal.style.display = "none"; 295 | } 296 | } 297 | 298 | }); 299 | function validateEmail($email) { 300 | var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; 301 | return emailReg.test($email); 302 | } -------------------------------------------------------------------------------- /assets/admin/js/colorpicker_btn.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Color picker 4 | * Author: Stefan Petre www.eyecon.ro 5 | * 6 | * Dual licensed under the MIT and GPL licenses 7 | * 8 | */ 9 | (function ($) { 10 | var ColorPicker = function () { 11 | var 12 | ids = {}, 13 | inAction, 14 | charMin = 65, 15 | visible, 16 | tpl = '
Select
', 17 | defaults = { 18 | eventName: 'click', 19 | onShow: function () {}, 20 | onBeforeShow: function(){}, 21 | onHide: function () {}, 22 | onChange: function () {}, 23 | onSubmit: function () {}, 24 | color: 'ff0000', 25 | livePreview: true, 26 | flat: false 27 | }, 28 | fillRGBFields = function (hsb, cal) { 29 | var rgb = HSBToRGB(hsb); 30 | $(cal).data('colorpicker').fields 31 | .eq(1).val(rgb.r).end() 32 | .eq(2).val(rgb.g).end() 33 | .eq(3).val(rgb.b).end(); 34 | }, 35 | fillHSBFields = function (hsb, cal) { 36 | $(cal).data('colorpicker').fields 37 | .eq(4).val(hsb.h).end() 38 | .eq(5).val(hsb.s).end() 39 | .eq(6).val(hsb.b).end(); 40 | }, 41 | fillHexFields = function (hsb, cal) { 42 | $(cal).data('colorpicker').fields 43 | .eq(0).val(HSBToHex(hsb)).end(); 44 | }, 45 | setSelector = function (hsb, cal) { 46 | $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100})); 47 | $(cal).data('colorpicker').selectorIndic.css({ 48 | left: parseInt(150 * hsb.s/100, 10), 49 | top: parseInt(150 * (100-hsb.b)/100, 10) 50 | }); 51 | }, 52 | setHue = function (hsb, cal) { 53 | $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10)); 54 | }, 55 | setCurrentColor = function (hsb, cal) { 56 | $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb)); 57 | }, 58 | setNewColor = function (hsb, cal) { 59 | $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb)); 60 | }, 61 | keyDown = function (ev) { 62 | var pressedKey = ev.charCode || ev.keyCode || -1; 63 | if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) { 64 | return false; 65 | } 66 | var cal = $(this).parent().parent(); 67 | if (cal.data('colorpicker').livePreview === true) { 68 | change.apply(this); 69 | } 70 | }, 71 | change = function (ev) { 72 | var cal = $(this).parent().parent(), col; 73 | if (this.parentNode.className.indexOf('_hex') > 0) { 74 | cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value)); 75 | } else if (this.parentNode.className.indexOf('_hsb') > 0) { 76 | cal.data('colorpicker').color = col = fixHSB({ 77 | h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10), 78 | s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10), 79 | b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10) 80 | }); 81 | } else { 82 | cal.data('colorpicker').color = col = RGBToHSB(fixRGB({ 83 | r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10), 84 | g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10), 85 | b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10) 86 | })); 87 | } 88 | if (ev) { 89 | fillRGBFields(col, cal.get(0)); 90 | fillHexFields(col, cal.get(0)); 91 | fillHSBFields(col, cal.get(0)); 92 | } 93 | setSelector(col, cal.get(0)); 94 | setHue(col, cal.get(0)); 95 | setNewColor(col, cal.get(0)); 96 | 97 | /* This is CORRECT 98 | console.log("change: ", cal.data('colorpicker').el); */ 99 | 100 | cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)], "fuck", cal.data('colorpicker').el); 101 | }, 102 | blur = function (ev) { 103 | var cal = $(this).parent().parent(); 104 | cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus'); 105 | }, 106 | focus = function () { 107 | charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65; 108 | $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus'); 109 | $(this).parent().addClass('colorpicker_focus'); 110 | }, 111 | downIncrement = function (ev) { 112 | var field = $(this).parent().find('input').focus(); 113 | var current = { 114 | el: $(this).parent().addClass('colorpicker_slider'), 115 | max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255), 116 | y: ev.pageY, 117 | field: field, 118 | val: parseInt(field.val(), 10), 119 | preview: $(this).parent().parent().data('colorpicker').livePreview 120 | }; 121 | $(document).bind('mouseup', current, upIncrement); 122 | $(document).bind('mousemove', current, moveIncrement); 123 | }, 124 | moveIncrement = function (ev) { 125 | ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10)))); 126 | if (ev.data.preview) { 127 | change.apply(ev.data.field.get(0), [true]); 128 | } 129 | return false; 130 | }, 131 | upIncrement = function (ev) { 132 | change.apply(ev.data.field.get(0), [true]); 133 | ev.data.el.removeClass('colorpicker_slider').find('input').focus(); 134 | $(document).unbind('mouseup', upIncrement); 135 | $(document).unbind('mousemove', moveIncrement); 136 | return false; 137 | }, 138 | downHue = function (ev) { 139 | var current = { 140 | cal: $(this).parent(), 141 | y: $(this).offset().top 142 | }; 143 | current.preview = current.cal.data('colorpicker').livePreview; 144 | $(document).bind('mouseup', current, upHue); 145 | $(document).bind('mousemove', current, moveHue); 146 | }, 147 | moveHue = function (ev) { 148 | change.apply( 149 | ev.data.cal.data('colorpicker') 150 | .fields 151 | .eq(4) 152 | .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10)) 153 | .get(0), 154 | [ev.data.preview] 155 | ); 156 | return false; 157 | }, 158 | upHue = function (ev) { 159 | fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); 160 | fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); 161 | $(document).unbind('mouseup', upHue); 162 | $(document).unbind('mousemove', moveHue); 163 | return false; 164 | }, 165 | downSelector = function (ev) { 166 | var current = { 167 | cal: $(this).parent(), 168 | pos: $(this).offset() 169 | }; 170 | current.preview = current.cal.data('colorpicker').livePreview; 171 | $(document).bind('mouseup', current, upSelector); 172 | $(document).bind('mousemove', current, moveSelector); 173 | }, 174 | moveSelector = function (ev) { 175 | change.apply( 176 | ev.data.cal.data('colorpicker') 177 | .fields 178 | .eq(6) 179 | .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10)) 180 | .end() 181 | .eq(5) 182 | .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10)) 183 | .get(0), 184 | [ev.data.preview] 185 | ); 186 | return false; 187 | }, 188 | upSelector = function (ev) { 189 | fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); 190 | fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); 191 | $(document).unbind('mouseup', upSelector); 192 | $(document).unbind('mousemove', moveSelector); 193 | return false; 194 | }, 195 | enterSubmit = function (ev) { 196 | $(this).addClass('colorpicker_focus'); 197 | }, 198 | leaveSubmit = function (ev) { 199 | $(this).removeClass('colorpicker_focus'); 200 | }, 201 | clickSubmit = function (ev) { 202 | var cal = $(this).parent(); 203 | var col = cal.data('colorpicker').color; 204 | cal.data('colorpicker').origColor = col; 205 | setCurrentColor(col, cal.get(0)); 206 | 207 | // console.log("rwar" + cal.data('colorpicker').el); // 208 | 209 | cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el); 210 | }, 211 | show = function (ev) { 212 | var cal = $('#' + $(this).data('colorpickerId')); 213 | cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]); 214 | var pos = $(this).offset(); 215 | var viewPort = getViewport(); 216 | var top = pos.top + this.offsetHeight; 217 | var left = pos.left; 218 | if (top + 176 > viewPort.t + viewPort.h) { 219 | top -= this.offsetHeight + 176; 220 | } 221 | if (left + 356 > viewPort.l + viewPort.w) { 222 | left -= 356; 223 | } 224 | cal.css({left: left + 'px', top: top + 'px'}); 225 | if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) { 226 | cal.show(); 227 | } 228 | $(document).bind('mousedown', {cal: cal}, hide); 229 | return false; 230 | }, 231 | hide = function (ev) { 232 | if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) { 233 | if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) { 234 | ev.data.cal.hide(); 235 | } 236 | $(document).unbind('mousedown', hide); 237 | } 238 | }, 239 | isChildOf = function(parentEl, el, container) { 240 | if (parentEl == el) { 241 | return true; 242 | } 243 | if (parentEl.contains) { 244 | return parentEl.contains(el); 245 | } 246 | if ( parentEl.compareDocumentPosition ) { 247 | return !!(parentEl.compareDocumentPosition(el) & 16); 248 | } 249 | var prEl = el.parentNode; 250 | while(prEl && prEl != container) { 251 | if (prEl == parentEl) 252 | return true; 253 | prEl = prEl.parentNode; 254 | } 255 | return false; 256 | }, 257 | getViewport = function () { 258 | var m = document.compatMode == 'CSS1Compat'; 259 | return { 260 | l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft), 261 | t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop), 262 | w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth), 263 | h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight) 264 | }; 265 | }, 266 | fixHSB = function (hsb) { 267 | return { 268 | h: Math.min(360, Math.max(0, hsb.h)), 269 | s: Math.min(100, Math.max(0, hsb.s)), 270 | b: Math.min(100, Math.max(0, hsb.b)) 271 | }; 272 | }, 273 | fixRGB = function (rgb) { 274 | return { 275 | r: Math.min(255, Math.max(0, rgb.r)), 276 | g: Math.min(255, Math.max(0, rgb.g)), 277 | b: Math.min(255, Math.max(0, rgb.b)) 278 | }; 279 | }, 280 | fixHex = function (hex) { 281 | var len = 6 - hex.length; 282 | if (len > 0) { 283 | var o = []; 284 | for (var i=0; i -1) ? hex.substring(1) : hex), 16); 294 | return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)}; 295 | }, 296 | HexToHSB = function (hex) { 297 | return RGBToHSB(HexToRGB(hex)); 298 | }, 299 | RGBToHSB = function (rgb) { 300 | var hsb = { 301 | h: 0, 302 | s: 0, 303 | b: 0 304 | }; 305 | var min = Math.min(rgb.r, rgb.g, rgb.b); 306 | var max = Math.max(rgb.r, rgb.g, rgb.b); 307 | var delta = max - min; 308 | hsb.b = max; 309 | if (max != 0) { 310 | 311 | } 312 | hsb.s = max != 0 ? 255 * delta / max : 0; 313 | if (hsb.s != 0) { 314 | if (rgb.r == max) { 315 | hsb.h = (rgb.g - rgb.b) / delta; 316 | } else if (rgb.g == max) { 317 | hsb.h = 2 + (rgb.b - rgb.r) / delta; 318 | } else { 319 | hsb.h = 4 + (rgb.r - rgb.g) / delta; 320 | } 321 | } else { 322 | hsb.h = -1; 323 | } 324 | hsb.h *= 60; 325 | if (hsb.h < 0) { 326 | hsb.h += 360; 327 | } 328 | hsb.s *= 100/255; 329 | hsb.b *= 100/255; 330 | return hsb; 331 | }, 332 | HSBToRGB = function (hsb) { 333 | var rgb = {}; 334 | var h = Math.round(hsb.h); 335 | var s = Math.round(hsb.s*255/100); 336 | var v = Math.round(hsb.b*255/100); 337 | if(s == 0) { 338 | rgb.r = rgb.g = rgb.b = v; 339 | } else { 340 | var t1 = v; 341 | var t2 = (255-s)*v/255; 342 | var t3 = (t1-t2)*(h%60)/60; 343 | if(h==360) h = 0; 344 | if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3} 345 | else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3} 346 | else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3} 347 | else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3} 348 | else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3} 349 | else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3} 350 | else {rgb.r=0; rgb.g=0; rgb.b=0} 351 | } 352 | return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)}; 353 | }, 354 | RGBToHex = function (rgb) { 355 | var hex = [ 356 | rgb.r.toString(16), 357 | rgb.g.toString(16), 358 | rgb.b.toString(16) 359 | ]; 360 | $.each(hex, function (nr, val) { 361 | if (val.length == 1) { 362 | hex[nr] = '0' + val; 363 | } 364 | }); 365 | return hex.join(''); 366 | }, 367 | HSBToHex = function (hsb) { 368 | return RGBToHex(HSBToRGB(hsb)); 369 | }, 370 | restoreOriginal = function () { 371 | var cal = $(this).parent(); 372 | var col = cal.data('colorpicker').origColor; 373 | cal.data('colorpicker').color = col; 374 | fillRGBFields(col, cal.get(0)); 375 | fillHexFields(col, cal.get(0)); 376 | fillHSBFields(col, cal.get(0)); 377 | setSelector(col, cal.get(0)); 378 | setHue(col, cal.get(0)); 379 | setNewColor(col, cal.get(0)); 380 | }; 381 | return { 382 | init: function (opt) { 383 | opt = $.extend({}, defaults, opt||{}); 384 | if (typeof opt.color == 'string') { 385 | opt.color = HexToHSB(opt.color); 386 | } else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) { 387 | opt.color = RGBToHSB(opt.color); 388 | } else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) { 389 | opt.color = fixHSB(opt.color); 390 | } else { 391 | return this; 392 | } 393 | return this.each(function () { 394 | if (!$(this).data('colorpickerId')) { 395 | var options = $.extend({}, opt); 396 | options.origColor = opt.color; 397 | var id = 'collorpicker_' + parseInt(Math.random() * 1000); 398 | $(this).data('colorpickerId', id); 399 | var cal = $(tpl).attr('id', id); 400 | if (options.flat) { 401 | cal.appendTo(this).show(); 402 | } else { 403 | cal.appendTo(document.body); 404 | } 405 | options.fields = cal 406 | .find('input') 407 | .bind('keyup', keyDown) 408 | .bind('change', change) 409 | .bind('blur', blur) 410 | .bind('focus', focus); 411 | cal 412 | .find('span').bind('mousedown', downIncrement).end() 413 | .find('>div.colorpicker_current_color').bind('click', restoreOriginal); 414 | options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector); 415 | options.selectorIndic = options.selector.find('div div'); 416 | options.el = this; 417 | options.hue = cal.find('div.colorpicker_hue div'); 418 | cal.find('div.colorpicker_hue').bind('mousedown', downHue); 419 | options.newColor = cal.find('div.colorpicker_new_color'); 420 | options.currentColor = cal.find('div.colorpicker_current_color'); 421 | cal.data('colorpicker', options); 422 | cal.find('div.colorpicker_submit') 423 | .bind('mouseenter', enterSubmit) 424 | .bind('mouseleave', leaveSubmit) 425 | .bind('click', clickSubmit); 426 | fillRGBFields(options.color, cal.get(0)); 427 | fillHSBFields(options.color, cal.get(0)); 428 | fillHexFields(options.color, cal.get(0)); 429 | setHue(options.color, cal.get(0)); 430 | setSelector(options.color, cal.get(0)); 431 | setCurrentColor(options.color, cal.get(0)); 432 | setNewColor(options.color, cal.get(0)); 433 | if (options.flat) { 434 | cal.css({ 435 | position: 'relative', 436 | display: 'block' 437 | }); 438 | } else { 439 | $(this).bind(options.eventName, show); 440 | } 441 | } 442 | }); 443 | }, 444 | showPicker: function() { 445 | return this.each( function () { 446 | if ($(this).data('colorpickerId')) { 447 | show.apply(this); 448 | } 449 | }); 450 | }, 451 | hidePicker: function() { 452 | return this.each( function () { 453 | if ($(this).data('colorpickerId')) { 454 | $('#' + $(this).data('colorpickerId')).hide(); 455 | } 456 | }); 457 | }, 458 | setColor: function(col) { 459 | if (typeof col == 'string') { 460 | col = HexToHSB(col); 461 | } else if (col.r != undefined && col.g != undefined && col.b != undefined) { 462 | col = RGBToHSB(col); 463 | } else if (col.h != undefined && col.s != undefined && col.b != undefined) { 464 | col = fixHSB(col); 465 | } else { 466 | return this; 467 | } 468 | return this.each(function(){ 469 | if ($(this).data('colorpickerId')) { 470 | var cal = $('#' + $(this).data('colorpickerId')); 471 | cal.data('colorpicker').color = col; 472 | cal.data('colorpicker').origColor = col; 473 | fillRGBFields(col, cal.get(0)); 474 | fillHSBFields(col, cal.get(0)); 475 | fillHexFields(col, cal.get(0)); 476 | setHue(col, cal.get(0)); 477 | setSelector(col, cal.get(0)); 478 | setCurrentColor(col, cal.get(0)); 479 | setNewColor(col, cal.get(0)); 480 | } 481 | }); 482 | } 483 | }; 484 | }(); 485 | $.fn.extend({ 486 | ColorPicker: ColorPicker.init, 487 | ColorPickerHide: ColorPicker.hidePicker, 488 | ColorPickerShow: ColorPicker.showPicker, 489 | ColorPickerSetColor: ColorPicker.setColor 490 | }); 491 | })(jQuery) -------------------------------------------------------------------------------- /admin/class-woocommerce-catalog-enquiry-settings.php: -------------------------------------------------------------------------------- 1 | ' . __( 'Upgrade to Pro', 'woocommerce-catalog-enquiry' ), 45 | 'manage_options', 46 | '', 47 | array( $this, 'handle_external_redirects' ) 48 | ); 49 | } 50 | } 51 | 52 | // Upgrade to pro link 53 | public function handle_external_redirects() { 54 | wp_redirect( 'https://multivendorx.com/product/woocommerce-catalog-enquiry-pro/' ); 55 | die; 56 | } 57 | 58 | public function option_page() { 59 | global $Woocommerce_Catalog_Enquiry; 60 | $menu_slug = null; 61 | $page = $_REQUEST[ 'page' ]; 62 | $layout = $this->woocommerce_catalog_get_page_layout(); ?> 63 |
64 | woocommerce_catalog_plugin_options_tabs(); ?> 65 |
66 | 67 |
68 |
69 |
70 | 71 |
72 | library->catalog_enquiry_get_options() as $v) { 75 | if (isset($v[ 'menu_slug' ])) { 76 | $menu_slug = $v[ 'menu_slug' ]; 77 | } 78 | if ($menu_slug == $page) { 79 | switch ($v[ 'type' ]) { 80 | case 'menu': 81 | break; 82 | case 'tab': 83 | $tab = $v; 84 | if (empty($default_tab)) { 85 | $default_tab = $v[ 'id' ]; 86 | } 87 | break; 88 | case 'setting': 89 | $current_tab = isset($_GET[ 'tab' ]) ? $_GET[ 'tab' ] : $default_tab; 90 | if ($current_tab == $tab[ 'id' ]) { 91 | settings_fields($v[ 'id' ]); 92 | $show_submit = true; 93 | } 94 | 95 | break; 96 | case 'section': 97 | $current_tab = isset($_GET[ 'tab' ]) ? $_GET[ 'tab' ] : $default_tab; 98 | if ($current_tab == $tab[ 'id' ] or $current_tab === false) { 99 | if ($layout == '2-col') { 100 | echo '
'; 101 | $this->wpp_catalog_do_settings_sections($v[ 'id' ], $show_submit); 102 | echo '
'; 103 | } else { 104 | $this->wpp_catalog_do_settings_sections($v[ 'id' ]); 105 | } 106 | } 107 | break; 108 | } 109 | } 110 | } ?> 111 |
112 | 113 | 114 |
115 |
116 |
117 | 118 | 122 |

123 | 124 |
125 |
126 |
127 | 131 |
132 |
133 |
134 | 138 |
139 |
140 |
141 |
142 | 143 |
144 |
145 | 146 | library->catalog_enquiry_get_options() as $v) { 156 | switch ($v[ 'type' ]) { 157 | case 'menu': 158 | $page = $_REQUEST[ 'page' ]; 159 | if ($page == $v[ 'menu_slug' ]) { 160 | if (isset($v[ 'layout' ])) { 161 | $layout = $v[ 'layout' ]; 162 | } 163 | } 164 | break; 165 | } 166 | } 167 | return $layout; 168 | } 169 | 170 | public function woocommerce_catalog_plugin_options_tabs() { 171 | global $Woocommerce_Catalog_Enquiry; 172 | $menu_slug = null; 173 | $page = $_REQUEST[ 'page' ]; 174 | $uses_tabs = false; 175 | $current_tab = isset($_GET[ 'tab' ]) ? $_GET[ 'tab' ] : false; 176 | 177 | //Check if this config uses tabs 178 | foreach ($Woocommerce_Catalog_Enquiry->library->catalog_enquiry_get_options() as $v) { 179 | if ($v[ 'type' ] == 'tab') { 180 | $uses_tabs = true; 181 | break; 182 | } 183 | } 184 | // If uses tabs then generate the tabs 185 | if ($uses_tabs) { 186 | echo ''; 227 | } 228 | } 229 | 230 | public function wpp_catalog_do_settings_sections($page, $show_submit) { 231 | global $wp_settings_sections, $wp_settings_fields; 232 | if (!isset($wp_settings_sections) || !isset($wp_settings_sections[ $page ])) { 233 | return; 234 | } 235 | foreach ((array) $wp_settings_sections[ $page ] as $section) { 236 | echo '
'; 237 | echo "

{$section['title']}

\n"; 238 | echo '
'; 239 | echo '
'; 240 | if (!isset($wp_settings_fields) || !isset($wp_settings_fields[ $page ]) || !isset($wp_settings_fields[ $page ][ $section[ 'id' ] ])) { 241 | continue; 242 | } 243 | echo ''; 244 | $this->woocommerce_catalog_do_settings_fields($page, $section[ 'id' ]); 245 | echo '
'; 246 | if ($show_submit): ?> 247 |

248 | 249 |

250 | '; 252 | } 253 | } 254 | 255 | function woocommerce_catalog_do_settings_fields($page, $section) { 256 | global $wp_settings_fields; 257 | 258 | if (!isset($wp_settings_fields) || !isset($wp_settings_fields[$page]) || !isset($wp_settings_fields[$page][$section])) { 259 | return; 260 | } 261 | foreach ((array) $wp_settings_fields[$page][$section] as $field) { 262 | echo ''; 263 | if (!empty($field['args']['label_for'])) { 264 | echo ''; 265 | } else { 266 | $fields_description = isset($field['args']['desc']) ? $field['args']['desc'] : ''; 267 | echo '' . $field['title'] . ''; 268 | } 269 | echo ''; 270 | do_action('field_start_' . $field['id']); 271 | call_user_func($field['callback'], $field['args']); 272 | echo ''; 273 | echo ''; 274 | } 275 | } 276 | 277 | /** 278 | * Register and add settings 279 | */ 280 | public function settings_page_init() { 281 | global $Woocommerce_Catalog_Enquiry; 282 | foreach ($Woocommerce_Catalog_Enquiry->library->catalog_enquiry_get_options() as $k => $v) { 283 | switch ($v[ 'type' ]) { 284 | case 'menu': 285 | $menu_slug = $v[ 'menu_slug' ]; 286 | 287 | break; 288 | case 'setting': 289 | if (empty($v[ 'validate_function' ])) { 290 | $v[ 'validate_function' ] = array( 291 | &$this, 292 | 'validate_machine' 293 | ); 294 | } 295 | register_setting($v[ 'id' ], $v[ 'id' ], $v[ 'validate_function' ]); 296 | $setting_id = $v[ 'id' ]; 297 | break; 298 | case 'section': 299 | if (empty($v[ 'desc_callback' ])) { 300 | $v[ 'desc_callback' ] = array( 301 | &$this, 302 | 'return_empty_string' 303 | ); 304 | } else { 305 | $v[ 'desc_callback' ] = $v[ 'desc_callback' ]; 306 | } 307 | add_settings_section($v[ 'id' ], $v[ 'label' ], $v[ 'desc_callback' ], $v[ 'id' ]); 308 | $section_id = $v[ 'id' ]; 309 | break; 310 | case 'tab': 311 | break; 312 | default: 313 | if (empty($v[ 'callback' ])) { 314 | $v[ 'callback' ] = array($this, 'field_machine'); 315 | } 316 | 317 | add_settings_field($v[ 'id' ], $v[ 'label' ], $v[ 'callback' ], $section_id, $section_id, apply_filters( 'woocommerce_catalog_add_settings_field', array( 318 | 'id' => $v[ 'id' ], 319 | 'name' => (isset($v[ 'name' ]) ? $v[ 'name' ] : ''), 320 | 'desc' => (isset($v[ 'desc' ]) ? $v[ 'desc' ] : ''), 321 | 'setting_id' => $setting_id, 322 | 'class' => (isset($v[ 'class' ]) ? $v[ 'class' ] : ''), 323 | 'type' => $v[ 'type' ], 324 | 'default_value' => (isset($v[ 'default_value' ]) ? $v[ 'default_value' ] : ''), 325 | 'option_values' => (isset($v[ 'option_values' ]) ? $v[ 'option_values' ] : ''), 326 | 'extra_input' => (isset($v[ 'extra_input' ]) ? $v[ 'extra_input' ] : ''), 327 | 'font_class' => (isset($v[ 'font_class' ]) ? $v[ 'font_class' ] : '') 328 | ), $v )); 329 | 330 | } 331 | } 332 | add_action('field_start_custom_enquiry_buttons_css', array($this, 'custom_enquiry_buttons_css_html_callback')); 333 | } 334 | 335 | public function custom_enquiry_buttons_css_html_callback() { 336 | $extra_fonts = apply_filters('wcce_catalog_enquiry_extra_button_style_fonts',array()); 337 | $extra_fonts_options = ''; 338 | if (!empty($extra_fonts) && is_array($extra_fonts)) { 339 | foreach ($extra_fonts as $key => $value) { 340 | $extra_fonts_options .= ''; 341 | } 342 | } 343 | $html = '
344 |
345 |
346 | 347 |
348 |
349 |
350 | 351 |
352 |
353 |
354 | 355 |
356 |
357 |
358 | 359 |
360 |
361 |
362 | 370 |
371 | 372 | 373 |
374 |
375 | 376 | 377 |
378 |
379 | 380 | 381 |
382 |
383 | 384 | 385 |
386 |
387 | 388 | 389 |
390 |
391 | 392 | 393 |
394 |
395 | 396 | 397 |
398 |
399 | 400 | 406 |
407 |
408 |
409 |
410 | Example Enquiry 411 |
412 |
'; 413 | echo $html; 414 | } 415 | 416 | public function field_machine($args) { 417 | global $Woocommerce_Catalog_Enquiry; 418 | extract($args); //$id, $desc, $setting_id, $class, $type, $default_value, $option_values 419 | // Load defaults 420 | $defaults = array( ); 421 | foreach ($Woocommerce_Catalog_Enquiry->library->catalog_enquiry_get_options() as $k) { 422 | switch ($k[ 'type' ]) { 423 | case 'setting': 424 | case 'section': 425 | case 'tab': 426 | break; 427 | default: 428 | if (isset($k[ 'default_value' ])) { 429 | $defaults[ $k[ 'id' ] ] = $k[ 'default_value' ]; 430 | } 431 | } 432 | } 433 | $options = get_option($setting_id); 434 | 435 | $options = wp_parse_args($options, $defaults); 436 | $path = $Woocommerce_Catalog_Enquiry->plugin_path . 'framework/field-types/' . $type . '.php'; 437 | if (file_exists($path)) { 438 | // Show Field 439 | include($path); 440 | // Show description 441 | if (!empty($desc)) { 442 | echo "{$desc}"; 443 | } 444 | } 445 | } 446 | 447 | } --------------------------------------------------------------------------------