Changeset 3022874
- Timestamp:
- 01/17/2024 10:52:39 AM (2 years ago)
- Location:
- wp-food-manager/trunk
- Files:
-
- 59 edited
-
admin/templates/food-data-ingredient.php (modified) (2 diffs)
-
admin/templates/food-data-nutrition.php (modified) (2 diffs)
-
admin/templates/food-data-toppings.php (modified) (1 diff)
-
admin/wpfm-admin.php (modified) (3 diffs)
-
admin/wpfm-field-editor.php (modified) (4 diffs)
-
admin/wpfm-permalink-settings.php (modified) (1 diff)
-
admin/wpfm-settings.php (modified) (4 diffs)
-
admin/wpfm-setup.php (modified) (2 diffs)
-
assets/css/backend.min.css (modified) (1 diff)
-
assets/css/frontend.css (modified) (11 diffs)
-
assets/css/frontend.min.css (modified) (1 diff)
-
assets/js/accounting/accounting.js (modified) (20 diffs)
-
assets/js/admin-settings.js (modified) (1 diff)
-
assets/js/admin.js (modified) (20 diffs)
-
assets/js/ajax-file-upload.js (modified) (2 diffs)
-
assets/js/content-food-listing.js (modified) (2 diffs)
-
assets/js/field-editor.js (modified) (5 diffs)
-
assets/js/food-dashboard.js (modified) (4 diffs)
-
assets/js/food-submission.js (modified) (4 diffs)
-
assets/js/frontend.js (modified) (4 diffs)
-
assets/js/frontend.min.js (modified) (1 diff)
-
assets/js/multiselect.js (modified) (1 diff)
-
assets/js/term-multiselect.js (modified) (1 diff)
-
assets/js/term-select-multi-appearance.js (modified) (3 diffs)
-
assets/js/term-select-multi-appearance.min.js (modified) (1 diff)
-
forms/wpfm-abstract-form.php (modified) (28 diffs)
-
forms/wpfm-add-food-form.php (modified) (20 diffs)
-
forms/wpfm-edit-food-form.php (modified) (4 diffs)
-
forms/wpfm-forms.php (modified) (6 diffs)
-
includes/wpfm-action-hooks.php (modified) (78 diffs)
-
includes/wpfm-ajax.php (modified) (3 diffs)
-
includes/wpfm-cache-helper.php (modified) (3 diffs)
-
includes/wpfm-category-walker.php (modified) (1 diff)
-
includes/wpfm-custom-post-types.php (modified) (12 diffs)
-
includes/wpfm-custom-taxonomies.php (modified) (1 diff)
-
includes/wpfm-data-cleaner.php (modified) (3 diffs)
-
includes/wpfm-date-time.php (modified) (15 diffs)
-
includes/wpfm-filter-hooks.php (modified) (12 diffs)
-
includes/wpfm-install.php (modified) (7 diffs)
-
readme.txt (modified) (2 diffs)
-
shortcodes/wpfm-shortcodes.php (modified) (21 diffs)
-
templates/content-food_manager.php (modified) (3 diffs)
-
templates/content-single-food_manager.php (modified) (5 diffs)
-
templates/content-single-food_manager_menu.php (modified) (7 diffs)
-
templates/food-dashboard.php (modified) (1 diff)
-
templates/food-filters.php (modified) (3 diffs)
-
templates/food-listings-end.php (modified) (1 diff)
-
templates/food-listings-start.php (modified) (1 diff)
-
templates/food-pagination.php (modified) (2 diffs)
-
templates/food-submit.php (modified) (10 diffs)
-
templates/form-fields/date-field.php (modified) (1 diff)
-
templates/form-fields/select-field.php (modified) (1 diff)
-
templates/form-fields/term-select-multi-appearance-field.php (modified) (7 diffs)
-
templates/pagination.php (modified) (1 diff)
-
templates/rss-food-feed.php (modified) (1 diff)
-
uninstall.php (modified) (3 diffs)
-
wp-food-manager-functions.php (modified) (66 diffs)
-
wp-food-manager-template.php (modified) (41 diffs)
-
wp-food-manager.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wp-food-manager/trunk/admin/templates/food-data-ingredient.php
r2930934 r3022874 2 2 3 3 /** 4 * Template ingredient panel4 * Template ingredient panel. 5 5 */ 6 6 … … 62 62 "<label>" . esc_html($ingTermName) . "</label>" . 63 63 "<div class='wpfm-sortable-item-values'>" . 64 "<input type='number' step=' 0.1' class='item-value' name='food_ingredients[" . esc_attr($ingTermID) . "][value]' value='" . esc_attr($ingValue) . "'>" .64 "<input type='number' step='any' class='item-value' name='food_ingredients[" . esc_attr($ingTermID) . "][value]' value='" . esc_attr($ingValue) . "'>" . 65 65 "<select name='food_ingredients[" . esc_attr($ingTermID) . "][unit_id]' class='item-unit'>" . 66 66 "<option value=''>Unit</option>"; -
wp-food-manager/trunk/admin/templates/food-data-nutrition.php
r2930934 r3022874 2 2 3 3 /** 4 * Template nutrition panel 4 * Template nutrition panel. 5 5 */ 6 6 … … 60 60 "<label>" . esc_html($nutriTermName) . "</label>" . 61 61 "<div class='wpfm-sortable-item-values'>" . 62 "<input type='number' step=' 0.1' class='item-value' name='food_nutritions[" . esc_attr($nutriTermID) . "][value]' value='" . esc_attr($nutriValue) . "'>" .62 "<input type='number' step='any' class='item-value' name='food_nutritions[" . esc_attr($nutriTermID) . "][value]' value='" . esc_attr($nutriValue) . "'>" . 63 63 "<select name='food_nutritions[" . esc_attr($nutriTermID) . "][unit_id]' class='item-unit'>" . 64 64 "<option value=''>Unit</option>"; -
wp-food-manager/trunk/admin/templates/food-data-toppings.php
r2930934 r3022874 2 2 3 3 /** 4 * Template Extra Option panel 4 * Template Extra Option panel. 5 5 */ 6 6 $food_toppings = get_post_meta($thepostid, '_food_toppings', true); -
wp-food-manager/trunk/admin/wpfm-admin.php
r2930934 r3022874 5 5 */ 6 6 if (!defined('ABSPATH')) { 7 exit; // Exit if accessed directly 7 exit; // Exit if accessed directly. 8 8 } 9 9 … … 44 44 45 45 /** 46 * __construct function 46 * __construct function. 47 47 * 48 48 * @access public … … 58 58 59 59 /** 60 * Ran on WP admin_init hook 60 * Ran on WP admin_init hook. 61 61 * 62 62 * @access public -
wp-food-manager/trunk/admin/wpfm-field-editor.php
r2930934 r3022874 30 30 31 31 /** 32 * Constructor 32 * Constructor. 33 33 */ 34 34 public function __construct() { … … 261 261 ); 262 262 263 // Find the numers keys from the fields array and replace with lable if label not exist remove that field 263 // Find the numers keys from the fields array and replace with lable if label not exist remove that field. 264 264 foreach ($new_fields as $group_key => $group_fields) { 265 265 $index = 0; … … 312 312 } 313 313 } 314 // merge field with default fields 314 // merge field with default fields. 315 315 $GLOBALS['food_manager']->forms->get_form('add-food', array()); 316 316 $form_add_food_instance = call_user_func(array('WPFM_Add_Food_Form', 'instance')); 317 317 $food_fields = $form_add_food_instance->get_default_food_fields(); 318 318 319 // if field in not exist in new fields array then make visiblity false 319 // if field in not exist in new fields array then make visiblity false. 320 320 if (!empty($food_fields)) { 321 321 foreach ($food_fields as $group_key => $group_fields) { … … 337 337 } 338 338 339 // This will be removed in future 339 // This will be removed in future. 340 340 $result = update_option('food_manager_form_fields', $new_fields); 341 341 } -
wp-food-manager/trunk/admin/wpfm-permalink-settings.php
r2914276 r3022874 42 42 43 43 /** 44 * Constructor 44 * Constructor. 45 45 */ 46 46 public function __construct() { -
wp-food-manager/trunk/admin/wpfm-settings.php
r2914276 r3022874 4 4 */ 5 5 6 // Exit if accessed directly 6 // Exit if accessed directly. 7 7 if (!defined('ABSPATH')) exit; 8 8 … … 67 67 */ 68 68 public function init_settings() { 69 // Prepare roles option 69 // Prepare roles option. 70 70 $roles = get_editable_roles(); 71 71 $account_roles = array(); … … 514 514 <div class="wpfm-setup-help-center-block-heading"><?php esc_attr_e('Video Tutorials', 'wp-food-manager'); ?></div> 515 515 <div class="wpfm-setup-help-center-block-desc"><?php esc_attr_e('Learn different skills by examining attractive video tutorials.', 'wp-food-manager'); ?></div> 516 <a href=" #" target="_blank" class="wpfm-setup-help-center-block-link"><span class="wpfm-setup-help-center-box-target-text"><?php esc_attr_e('Watch all', 'wp-food-manager'); ?> »</span></a>516 <a href="https://www.youtube.com/channel/UC5j54ZQs7DLM8Dcvc2FwpPQ" target="_blank" class="wpfm-setup-help-center-block-link"><span class="wpfm-setup-help-center-box-target-text"><?php esc_attr_e('Watch all', 'wp-food-manager'); ?> »</span></a> 517 517 </div> 518 518 </div> … … 527 527 /** 528 528 * Creates Multiselect checkbox. 529 * This function generate multiselect 529 * This function generate multiselect. 530 530 * 531 531 * @access public -
wp-food-manager/trunk/admin/wpfm-setup.php
r2914276 r3022874 245 245 <div class="wpfm-setup-help-center-block-content"> 246 246 <div class="wpfm-setup-help-center-block-heading"><?php esc_attr_e('Video Tutorials', 'wp-food-manager'); ?></div> 247 <div class="wpfm-setup-help-center-block-desc"><?php esc_attr_e('Coming Soon...', 'wp-food-manager'); ?></div> 247 <div class="wpfm-setup-help-center-block-desc"><?php esc_attr_e('Learn different skills by examining attractive video tutorials.', 'wp-food-manager'); ?></div> 248 <a href="https://www.youtube.com/channel/UC5j54ZQs7DLM8Dcvc2FwpPQ" target="_blank" class="wpfm-setup-help-center-block-link"><span class="wpfm-setup-help-center-box-target-text"><?php esc_attr_e('Watch all', 'wp-food-manager'); ?> »</span></a> 248 249 </div> 249 250 </div> … … 270 271 271 272 /** 272 * Sanitize a 2 dimension array 273 * Sanitize a 2 dimension array. 273 274 * 274 275 * @access private -
wp-food-manager/trunk/assets/css/backend.min.css
r2902328 r3022874 1 #food_manager_data ul.wpfm-tabs li a::before, .widefat th.column-food_banner span:before{font-family:Dashicons;speak:none;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased}:root{--wpfm-primary-color:#ff4600}.food_manager_page_food-manager-settings #adminmenuwrap{position:relative!important}.wpfm-food-icon-class{display:grid;grid-template-columns:auto auto auto auto auto auto auto auto auto auto auto auto auto auto auto auto;overflow-y:auto;grid-auto-rows:48px;height:auto;margin-bottom:0;max-height:240px}.wpfm-food-icon-class i.fa{font-size:18px}.wpfm-food-icon-class span.wpfm-menu{font-size:26px}h2.wp-food-menu-icon-title{background:#ddd;font-size:16px!important;font-weight:500!important}.no-radio-icons{display:none;text-align:right}.wpfm-parent-icons{display:inline-block;vertical-align:top;position:relative;width:100%;text-align:right}span.wpfm-searh-clear{position:absolute;right:10px;left:auto;top:15px;cursor:pointer;display:none}.sub-font-icon{border:1px solid #ddd;padding:12px 5px;text-align:center;position:relative;z-index:9;height:22px}.sub-font-icon input[type=radio]:hover+label span.wpfm-key-name{font-size:10px;position:absolute;top:1px;background:#000;color:#fff;border-radius:5px;left:5px;right:5px;width:auto;z-index:99;padding:1px 0 3px}.sub-font-icon input[type=radio]:hover+label span.wpfm-key-name::before{background:#000;content:'';height:10px;width:10px;position:absolute;left:0;right:0;bottom:-3px;transform:rotate(45deg);margin:0 auto;z-index:-1}.sub-font-icon input[type=radio]{opacity:0}.sub-font-icon input[type=radio]+label{margin-left:-20px;font-size:0}.sub-font-icon input[type=radio]:checked+label::after{background:#333;content:'';position:absolute;left:0;right:0;top:0;bottom:0;z-index:-1}.sub-font-icon input[type=radio]:checked+label i,.sub-font-icon input[type=radio]:checked+label span{color:#fff}.sub-font-icon input[type=radio]:checked - .sub-font-icon{border-color:#333}.wpfm-metaboxes-wrapper .wpfm-actions,.wpfm_panel .wpfm-admin-postbox-form-group{border-top:1px solid #fff;border-bottom:1px solid #eee}#wpfm_icon_search{margin:10px 0 15px}.menu-icon-food_manager .wp-menu-image img{width:28px;margin-top:0;padding-top:3px!important;max-width:100%}.wpfm-admin-left-col,.wpfm-admin-right-col{display:inline-flex;align-items:center}button.button.button-small.wp_food_manager_upload_file_button,button.button.button-small.wp_food_manager_upload_file_button_multiple{margin-top:5px}.food-manager-uploaded-file span.wpfm-icon{border:2px solid #e4e4e4;display:inline-block;padding:10px;border-radius:4px;box-sizing:border-box}.wpfm-food-menu li{display:flex;justify-content:space-between;align-items:center}.wpfm-admin-postbox-meta-data .wpfm-admin-postbox-form-field label{display:block;font-weight:700;margin:0}.wpfm-admin-postbox-meta-data .wpfm-admin-postbox-form-field{line-height:2em;box-sizing:border-box;padding:0 12px 0 0;margin:0 -1px}.wpfm-admin-postbox-drop-btn{width:80px}.wpfm-admin-postbox-drop-btn input#wpfm-admin-add-food{font-size:13px}label.add-food-small{font-weight:500!important;color:#787c82}.wpfm-admin-postbox-drop-btn input[type=button],.wpfm-admin-postbox-form-field .wpfm-admin-postbox-file_url input:first-child,.wpfm-admin-postbox-form-field .wpfm-admin-postbox-file_url select:first-child{flex:1}.wpfm-admin-postbox-form-field .wpfm-admin-postbox-file_url,.wpfm-admin-postbox-meta-data{display:flex;flex-wrap:wrap}.wpfm-admin-postbox-meta-data .wpfm-admin-postbox-form-field input,.wpfm-admin-postbox-meta-data .wpfm-admin-postbox-form-field select{width:100%;max-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;vertical-align:middle}.wpfm-admin-postbox-meta-data .wpfm-admin-postbox-form-field .checkbox{width:1em}.wpfm-admin-postbox-drop-btn,.wpfm-food-item-remove span.dashicons.dashicons-dismiss{display:flex}.wpfm-admin-food-menu-container.wpfm-flex-col.wpfm-admin-postbox-meta-data{flex-direction:column}.wpfm-admin-menu-selection.wpfm-admin-postbox-form-field{max-width:270px}.wpfm-admin-food-menu-items .wpfm-admin-left-col span.dashicons,span.food-manager-uploaded-file{margin-right:10px}.wpfm-food-menu.menu li.menu-item-handle:last-child{margin-bottom:10px}.wpfm-food-menu.menu li.menu-item-handle{margin-bottom:5px;max-width:600px}.wpfm-food-item-remove{text-decoration:none}.wp-food-manager-food-form-field-editor .save-actions .reset:hover,.wp-food-manager-food-form-field-editor table .field-actions a.delete-field:hover,.wpfm-food-item-remove:hover{color:red}#food_manager_data .inside{margin:0;padding:0}#food_manager_data .panel-wrap{overflow:hidden;background:#fff}#food_manager_data ul.wpfm-tabs{margin:0;width:20%;float:left;line-height:1em;padding:0 0 10px;position:relative;background-color:#fafafa;border-right:1px solid #eee;box-sizing:border-box}#food_manager_data ul.wpfm-tabs li{margin:0;padding:0;display:block;position:relative}#food_manager_data ul.wpfm-tabs li a{margin:0;padding:10px;display:block;box-shadow:none;text-decoration:none;line-height:20px!important;border-bottom:1px solid #eee;border-left:3px solid transparent}#food_manager_data ul.wpfm-tabs li a span{margin-left:.618em;margin-right:.618em}#food_manager_data ul.wpfm-tabs li.general_options a::before{content:"\f107"}#food_manager_data ul.wpfm-tabs li.advanced_tab a::before{content:"\f111"}#food_manager_data ul.wpfm-tabs li.nutritions_tab a::before{content:"\f511"}#food_manager_data ul.wpfm-tabs li.ingredient_tab a::before{content:"\f175"}#food_manager_data ul.wpfm-tabs li a::before{font-weight:400;line-height:1;content:"\f107";text-decoration:none}#food_manager_data ul.wpfm-tabs li.toppings_tab a::before{content:"\f509"}#food_manager_data .wpfm_panel{float:left;width:80%}.wpfm_panel{min-height:175px;box-sizing:border-box}.panel,.wpfm_panel{color:#555}#food_manager_data .wpfm-tabs a.nav-tab-active{border-left:3px solid #0b8ac7}.wpfm_panel p.wpfm-admin-postbox-form-field{padding:5px 20px 5px 200px!important;display:flex;align-items:center;column-gap:5px}#advanced_product_data p.wpfm-admin-postbox-form-field,.type-food_manager td.food_banner.column-food_banner{display:flex;align-items:center}.wpfm_panel label{float:left;width:200px;padding:0;margin:0 0 0 -200px;font-size:14px;color:#555}.wpfm_panel .wpfm-small-field,.wpfm_panel input[type=email].wpfm-small-field,.wpfm_panel input[type=number].wpfm-small-field,.wpfm_panel input[type=password].wpfm-small-field,.wpfm_panel input[type=text].wpfm-small-field,.wpfm_panel input[type=url].wpfm-small-field{width:50%}.wpfm_panel .wpfm-admin-postbox-form-group:first-child{border-top:0}#food_manager_data ul.wpfm-tabs::after{content:"";display:block;width:100%;height:9999em;position:absolute;bottom:-9999em;left:0;background-color:#fafafa;border-right:1px solid #eee}.wpfm_panel p{margin:9px 0;font-size:12px;line-height:24px}.wpfm_panel .description{padding:0;margin:0 0 0 7px;clear:none;display:inline}.wpfm_panel .checkbox{margin:4px 0!important;vertical-align:middle}.wpfm-metaboxes{padding:.5em .75em .5em 1em!important}.wpfm-metaboxes .wpfm-metabox.closed h3{border:0}.wpfm-metaboxes .wpfm-metabox h3{margin:0!important;padding:.75em .75em .75em 1em!important;font-size:1em!important;overflow:hidden;zoom:1;cursor:pointer}.wpfm-metaboxes .wpfm-metabox.wpfm_attribute h3 .wpfm-sort,.wpfm-metaboxes .wpfm-metabox.wpfm_attribute h3 .wpfm-togglediv,.wpfm-metaboxes .wpfm-metabox.wpfm_attribute h3 a.wpfm-delete-btn{margin-top:.25em}.wpfm-metaboxes .wpfm-metabox h3 a.wpfm-delete-btn{color:red;font-weight:400;line-height:26px;text-decoration:none;position:relative}.wpfm-metaboxes .wpfm-metabox h3 a.wpfm-delete-btn,.wpfm-metaboxes .wpfm-metabox h3 button,a.button.wpfm-add-row{float:right}.wpfm-metaboxes .wpfm-metabox h3 .wpfm-togglediv{background-position:6px 5px!important;height:26px}.wpfm-metaboxes .wpfm-metabox .wpfm-togglediv{width:27px;float:right}.wpfm-attributes-wrap h3 .wpfm-sort{visibility:hidden;width:17px;height:26px;cursor:move;float:right;font-size:15px;font-weight:400;margin-right:.5em;text-align:center;vertical-align:middle}.wpfm-tooltip{cursor:help;text-decoration:none}#toppings_food_data_content .wpfm-admin-options-table .widefat tfoot,#toppings_food_data_content .wpfm-admin-options-table .widefat thead{background:#f6f7f7}.wpfm-input-field.parent-option-description{display:flex;flex-flow:column;row-gap:12px}.wpfm-metaboxes-wrapper .wpfm-metabox:nth-child(2n) h3{background:#ebebeb}.wpfm-metaboxes .wpfm-metabox .wpfm-togglediv::before{content:"\f142"!important;cursor:pointer;display:inline-block;font:400 20px/1 Dashicons;line-height:.5!important;padding:8px 10px;position:relative;right:12px;top:0}.wpfm-metaboxes .wpfm-metabox.closed .wpfm-togglediv::before{content:"\f140"!important}.wpfm-metaboxes .wpfm-metabox h3 strong{margin-right:10px;line-height:26px;font-weight:700}.wpfm-attributes-wrap h3 .wpfm-sort::before{content:"\f333";font-family:Dashicons;text-align:center;line-height:28px;color:#999;display:block;width:17px;float:left;height:100%}.wpfm-attributes-wrap h3 .wpfm-sort:hover::before{color:#777}.wpfm-attributes-box{background-color:#fdfdfd;border-top:1px solid #eee}.wpfm-content{padding:1em}.wpfm-attributes-wrap .wpfm-content::after,.wpfm-attributes-wrap .wpfm-content::before{content:" ";display:table}.wpfm-form-row.wpfm-form-row-first,.wpfm-form-row.wpfm-form-row-last{width:48%;float:right}.wpfm-form-row.wpfm-form-row-first{clear:both;float:left}.wpfm-content::after,.wpfm-form-row.wpfm-form-row-full{clear:both}.wpfm-form-row label{display:inline-block;float:none;width:auto;margin:auto}.wpfm-form-row input[type=color],.wpfm-form-row input[type=date],.wpfm-form-row input[type=datetime-local],.wpfm-form-row input[type=datetime],.wpfm-form-row input[type=email],.wpfm-form-row input[type=month],.wpfm-form-row input[type=number],.wpfm-form-row input[type=password],.wpfm-form-row input[type=search],.wpfm-form-row input[type=tel],.wpfm-form-row input[type=text],.wpfm-form-row input[type=time],.wpfm-form-row input[type=url],.wpfm-form-row input[type=week],.wpfm-form-row select,.wpfm-form-row textarea{width:100%;vertical-align:middle;margin:2px 0 0;padding:5px}.wpfm-form-row select{height:40px}.wpfm-metaboxes-wrapper .wpfm-actions{margin:0!important;padding:9px 12px!important}.wpfm-metaboxes-wrapper .wpfm-metabox{background:#fff;margin:15px 0 0!important;border-bottom:1px solid #c3c4c7;border-radius:4px}.wpfm-actions .wpfm-add-button{display:block;margin-left:auto}.wpfm-metaboxes .wpfm-metabox .wpfm-metabox-content .wpfm-metabox-footer.wpfm-actions{padding-top:0!important;margin-right:auto!important}td.fm_categories.column-fm_categories span.food-category{background:#f0f0f0;padding:5px 7px;margin:3px;word-wrap:unset;display:inline-block;vertical-align:top;border-radius:4px}input[name="_food_veg_nonveg"]{border-radius:0}._food_veg_nonveg .radio.vegetarian{border-color:#2a0}._food_veg_nonveg .radio.vegetarian:focus{box-shadow:0 0 0 1px #2a0}._food_veg_nonveg .radio.vegetarian:checked::before{background-color:#2a0}._food_veg_nonveg .radio.non-vegetarian{border-color:red}._food_veg_nonveg .radio.non-vegetarian:focus{box-shadow:0 0 0 1px red}._food_veg_nonveg .radio.non-vegetarian:checked::before{background-color:red}.wpfm_panel .wpfm-admin-postbox-form-field._food_veg_nonveg span.wpfm-input-field label{float:none;margin:0 5px 0 0}.wpfm_panel .wpfm-admin-postbox-form-field span.wpfm-input-field label{float:none;margin:0}mark.fm_outofstock{color:#a44;background:0 0;font-weight:700}mark.fm_instock{color:#7ad03a;background:0 0;font-weight:700}.widefat th.column-food_banner span{display:inline-block;text-indent:-9999px;position:relative;height:1em;width:1em;margin:0 auto;font-size:14px}.widefat th.column-food_banner span:before{font-weight:400;line-height:1;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}#the-list .column-food_banner img.wpfm-organic-tag-icon{margin-left:10px;width:20px;max-width:100%}.parent-organic-tag{position:relative;display:inline-block;vertical-align:top;cursor:help}.parent-organic-tag:hover::before{content:attr(data-icon-type);position:absolute;right:auto;background:#464646;color:#fff;font-size:11px;border-radius:4px;left:36px;top:0;padding:3px 10px;z-index:9;width:auto}.parent-organic-tag:hover::after{content:'';background:#464646;height:9px;width:9px;position:absolute;transform:rotate(45deg);top:7px;right:-12px}#wpfm-ingredient-container,#wpfm-nutrition-container{padding:5px;display:-webkit-box;display:-ms-flexbox;display:flex}.wpfm-lists-container .wpfm-active-list.wpfm-sortable-list{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-right:5px}.wpfm-lists-container .wpfm-sortable-list{position:relative;padding:50px 10px 10px;border:1px solid #dcdcde;margin:0;min-height:50px;-webkit-box-flex:2;-ms-flex:2;flex:2}.wpfm-sortable-list:before{content:attr(data-title);background:#f6f7f7;padding:10px 0;text-align:center;font-weight:700;position:absolute;display:block;width:100%;top:0;margin-left:-10px;border-bottom:1px solid #dcdcde}.post-type-food_manager .ui-sortable tr:hover,.wpfm-sortable-list .wpfm-sortable-item{cursor:move}.wpfm-sortable-list .wpfm-sortable-item label{cursor:move;width:auto;float:none;margin:0}.wpfm-clear::after{clear:both;content:"";display:block}.wpfm-sortable-list .wpfm-item-search.with-title{margin-bottom:30px;padding:15px 15px 15px 20px;background:#f6f7f7;margin-left:5px;border:1px solid #dcdcde}.wpfm-sortable-list .wpfm-item-search.with-title .wpfm-search-label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;float:none;margin:0;width:auto}.wpfm-sortable-list .wpfm-item-search.with-title .wpfm-search-label span{margin-right:30px;font-size:15px}.wpfm-sortable-list .wpfm-item-search.with-title .wpfm-search-label input{min-height:36px;min-width:250px}.wpfm-available-list .wpfm-sortable-item{width:150px;float:left;background:#f6f7f7;padding:8px 5px;margin:5px;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:1.4;border:1px solid #dcdcde}.wpfm-sortable-item-values>*{width:48%;box-sizing:border-box}.wpfm-active-list .wpfm-sortable-item{background:#f6f7f7;padding:10px 5px 10px 10px;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;border:1px solid #dcdcde}.wpfm-active-list .wpfm-sortable-item+li{margin-top:6px}.wrap.food-manager-settings-wrap h2.nav-tab-wrapper{margin-bottom:20px}.wpfm_error_tip{color:#fff;font-size:.8em;background:#d82223;text-align:center;border-radius:3px;padding:.618em 1em;box-shadow:0 1px 3px rgba(0,0,0,.2);max-width:20em;line-height:1.8em;position:absolute;white-space:normal;margin:1.5em 1px 0 -1em;z-index:9999999}.wpfm_error_tip::after{content:"";display:block;border:8px solid #d82223;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent;position:absolute;top:-3px;left:50%;margin:-1em 0 0 -3px}.wpfm_panel label.wpfm-field-switch{position:relative;display:inline-block;width:50px;height:24px;float:none;margin:0}.wpfm-input-field{background:#f6f7f7;padding:15px;position:relative;border-radius:4px;border:1px solid #dcdcde;margin:0;width:100%;display:inline-block;vertical-align:top;box-sizing:border-box}.wpfm-input-field .wp-editor-container textarea{height:126px;width:100%;border:0;box-shadow:none}.wpfm-field-switch-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#d3d6df;-webkit-transition:.4s;-o-transition:.4s;transition:.4s}.wpfm-field-switch-slider.round{border-radius:34px}.wpfm-field-switch-slider.round:before{border-radius:50%}.wpfm-field-switch input{opacity:0;width:0;height:0}.wpfm-field-switch input[type=checkbox]:checked::before{content:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%233582c4%27%2F%3E%3C%2Fsvg%3E");margin:-.1875rem 0 0 -.25rem;height:1.3125rem;width:1.3125rem}.wpfm-field-switch-slider:before{position:absolute;content:"";height:16px;width:16px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.4s;-o-transition:.4s;transition:.4s}input:checked+.wpfm-field-switch-slider{background-color:var(--wpfm-primary-color)}input:checked+.wpfm-field-switch-slider:before{-webkit-transform:translateX(26px);-ms-transform:translateX(26px);transform:translateX(26px)}div#wpfm-loading{position:fixed;width:100%;height:100%;z-index:999999999;background:rgba(0,0,0,.7);top:0}#wpfm-loading span.wpfm-loading{display:block;top:50%;position:fixed;color:#fff;font-size:20px;font-weight:700;width:100%;text-align:center}.widefat .column-food_actions{text-align:right;width:120px}.widefat .column-food_actions .actions{padding-top:2px}.widefat .column-food_actions a.button{display:inline-block;margin:0 0 2px 4px;cursor:pointer;padding:0 6px!important;font-size:1em!important;line-height:2em!important;overflow:hidden}.widefat .column-food_actions a.button-icon{width:2em!important;padding:0!important}.wp-food-manager-food-form-field-editor table tr:nth-child(odd) td{background-color:#f9f9f9}.wp-food-manager-food-form-field-editor table .sort-column{cursor:move;color:#ccc}.wp-food-manager-food-form-field-editor table td{overflow:visible;padding:1em 0 1em 1em;vertical-align:middle}.wp-food-manager-food-form-field-editor table .sort-column:before{content:"\f333";font-family:dashicons}.wp-food-manager-food-form-field-editor table td input.input-text,.wp-food-manager-food-form-field-editor table td select{width:100%;min-width:100px}.wp-food-manager-food-form-field-editor table td .file-options .multiple-files input{width:auto;display:inline-block;min-width:16px}.wp-food-manager-food-form-field-editor table td:last-child,.wp-food-manager-food-form-field-editor table th:last-child{padding-right:1em}.wp-food-manager-food-form-field-editor table .field-actions a.delete-field{color:#ccc;padding:1em 0 0;width:1em;height:0;overflow:hidden;display:inline-block;position:relative}.wp-food-manager-food-form-field-editor table .field-actions a.delete-field:before{content:"\f153";font-family:dashicons;font-size:1em;line-height:1em;vertical-align:top;position:absolute;top:0;left:0}.wp-food-manager-food-form-field-editor table tfoot th{vertical-align:middle;line-height:28px}.wp-food-manager-food-form-field-editor table th{padding:1em 0 1em 1em}.wp-food-manager-food-form-field-editor .save-actions{text-align:right}.wp-food-manager-food-form-field-editor .save-actions input{margin-left:1em}.wp-food-manager-food-form-field-editor .save-actions .reset{color:#bbb;text-decoration:none;position:relative;top:4px}.form-field .chosen-container{width:100%!important}.food-manager-uploaded-file-preview{display:inline-block;position:relative;vertical-align:top}.food-manager-uploaded-file-preview img{max-height:100px;max-width:100px;border:2px solid #ccc;border-radius:6px}.food-manager-uploaded-file-preview .food-manager-remove-uploaded-file{font-size:0;height:20px;width:20px;background:#fff;position:absolute;top:2px;right:2px;border-radius:0 4px;border:none;box-shadow:2px 2px 10px rgba(0,0,0,.2)}.food-manager-uploaded-file-preview .food-manager-remove-uploaded-file::before{content:"\ea0f";font-family:wp-food-manager;font-size:10px;color:red;top:50%;position:absolute;left:50%;transform:translate(-50%,-50%);transition:.2s}.food-manager-uploaded-files .food-manager-uploaded-file{margin-bottom:20px;display:inline-block;padding-right:20px}.wpfm-food-menu .menu-item-handle .item-title{word-break:break-word}.wpfm-admin-menu-selection select{margin-top:10px}.widefat td.food_banner.column-food_banner .food_banner img{max-width:60px;height:auto}span.no-menu-item-handle{font-size:14px;font-weight:500;background:bisque;padding:5px 10px;border-radius:4px;display:inline-block}a.wpfm-tooltip.food_title{cursor:pointer}.wpfm-metaboxes .wpfm-metabox-content.wpfm-variation-box{border-top:1px solid #ccd0d4}.white-background{float:left;width:100%;background-color:#fff;border:1px solid #e1e1e1;padding:10px;box-sizing:border-box;margin:0 0 20px}.wpfm-input-field .mce-btn.mce-active button,.wpfm-input-field .mce-btn.mce-active i,.wpfm-input-field .mce-btn.mce-active:hover button,.wpfm-input-field .mce-btn.mce-active:hover i{color:#595959}.admin-setting-left{float:left;width:70%}.box-info{position:relative;min-width:255px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgb(0 0 0 / 4%);box-shadow:0 1px 1px rgb(0 0 0 / 4%);background:#fff;float:right!important;box-sizing:border-box;width:28%;padding:15px}.box-info h3{padding:0 0 10px 10px;font-size:14px;margin-top:5px;border-bottom:1px solid #efefef}.wpfm-plugin_info-inside{max-width:100%;overflow:hidden}.wpfm-plugin_info-inside .wpfm-setup-help-center-block{background:#fff;border:1px solid #e1e1e4;box-sizing:border-box;border-radius:7px;display:flex;margin-bottom:10px;padding:10px 15px;text-align:left;align-items:center}.wpfm-plugin_info-inside .wpfm-setup-help-center-block .wpfm-setup-help-center-block-icon{margin-right:25px}.wpfm-plugin_info-inside .wpfm-setup-help-center-faqs-icon,.wpfm-plugin_info-inside .wpfm-setup-help-center-knowledge-base-icon,.wpfm-plugin_info-inside .wpfm-setup-help-center-support-icon,.wpfm-plugin_info-inside .wpfm-setup-help-center-video-tutorial-icon{display:inline-block;background:url(../images/support-page-sprites-img.png) 0 0/140px no-repeat;overflow:hidden;text-indent:-9999px;text-align:left}.wpfm-plugin_info-inside .wpfm-setup-help-center-knowledge-base-icon{background-position:-68px 1px;width:60px;height:60px}.wpfm-plugin_info-inside .wpfm-setup-help-center-faqs-icon{background-position:-5px 1px;width:60px;height:60px}.wpfm-plugin_info-inside .wpfm-setup-help-center-video-tutorial-icon{background-position:-72px -62px;width:60px;height:60px}.wpfm-plugin_info-inside .wpfm-setup-help-center-block-content .wpfm-setup-help-center-block-heading{font-weight:600;line-height:1.42;color:#111;font-size:16px;margin-bottom:5px}.wpfm-plugin_info-inside .wpfm-setup-help-center-block-content .wpfm-setup-help-center-block-desc{font-size:14px;line-height:1.42;color:#555}.wpfm-plugin_info-inside .wpfm-setup-help-center-block-content a.wpfm-setup-help-center-block-link{display:inline-block;font-size:14px;font-style:normal;font-weight:500;line-height:18px;margin-top:10px;position:relative;text-decoration:none;color:var(--wpfm-primary-color);transition:color .2s}.wpfm-plugin_info-inside .wpfm-setup-help-center-block-content a.wpfm-setup-help-center-block-link:hover{color:#000}.wpfm-plugin_info-inside span.light-grey{text-align:center;display:block;padding-top:10px;font-size:14px;margin-top:5px;border-top:1px solid #efefef}.wpfm-plugin_info-inside a img{width:100%;display:block;max-width:200px;margin:5px auto 0}.wpfm-tooltip{position:relative}.wpfm-tooltip:hover:before{content:attr(wpfm-data-tip);background:#464646;color:#fff;font-size:11px;border-radius:4px;position:absolute;left:50%;top:calc(100% + 6px);padding:3px 10px;z-index:9999999999;width:auto;transform:translate(-50%,0);white-space:nowrap}.wpfm-tooltip:hover:after{content:'';background:#464646;height:9px;width:9px;position:absolute;transform:rotate(45deg);top:calc(100% + 2px);left:calc(50% - 4.5px)}.widefat .column-food_actions a.wpfm-tooltip{padding:0!important;width:30px;height:30px;text-align:center;overflow:inherit}.widefat .column-food_actions a.wpfm-tooltip span{line-height:30px;margin:0 auto;font-size:16px}span.toppings-radio-btn label{display:inline-block;margin-right:10px}span.toppings-radio-btn input[type=radio]{margin-right:0}span.toppings-radio-btn{margin-top:5px;display:block}.mce-btn button:hover{background:0 0;color:transparent}.mce-btn.mce-active button,.mce-btn.mce-active i,.mce-btn.mce-active:hover button,.mce-btn.mce-active:hover i{color:#000!important}@media only screen and (max-width:1280px){.wpfm_panel .wpfm-small-field,.wpfm_panel input[type=email].wpfm-small-field,.wpfm_panel input[type=number].wpfm-small-field,.wpfm_panel input[type=password].wpfm-small-field,.wpfm_panel input[type=text].wpfm-small-field{width:80%}.wpfm_panel .description{display:block;clear:both;margin-left:0}.admin-setting-left,.box-info{width:100%}}@media only screen and (max-width:900px){#food_manager_data ul.wpfm-tabs{width:10%}#food_manager_data ul.wpfm-tabs li a{position:relative;text-indent:-999px;padding:10px}#food_manager_data ul.wpfm-tabs li a::before{position:absolute;top:0;right:0;bottom:0;left:0;text-indent:0;text-align:center;line-height:40px;width:100%;height:40px}.wpfm_panel.wpfm-metaboxes-wrapper .wpfm-actions,.wpfm_panel.wpfm-metaboxes-wrapper .wpfm-metaboxes{margin-right:-12.5%!important}}@media only screen and (max-width:782px){#food_manager_data .checkbox{width:25px}}@media only screen and (max-width:500px){.wpfm_panel p.wpfm-admin-postbox-form-field{padding:5px 20px!important}#food_manager_data label{float:none;width:auto;display:block;margin:0}}1 #food_manager_data ul.wpfm-tabs li a::before, .widefat th.column-food_banner span:before {font-family: Dashicons;speak: none;font-variant: normal;text-transform: none;-webkit-font-smoothing: antialiased }:root {--wpfm-primary-color: #ff4600 }.food_manager_page_food-manager-settings #adminmenuwrap {position: relative !important }.wpfm-food-icon-class {display: grid;grid-template-columns: auto auto auto auto auto auto auto auto auto auto auto auto auto auto auto auto;overflow-y: auto;grid-auto-rows: 48px;height: auto;margin-bottom: 0;max-height: 240px }.wpfm-food-icon-class i.fa {font-size: 18px }.wpfm-food-icon-class span.wpfm-menu {font-size: 26px }h2.wp-food-menu-icon-title {background: #ddd;font-size: 16px !important;font-weight: 500 !important }.no-radio-icons {display: none;text-align: right }.wpfm-parent-icons {display: inline-block;vertical-align: top;position: relative;width: 100%;text-align: right }span.wpfm-searh-clear {position: absolute;right: 10px;left: auto;top: 15px;cursor: pointer;display: none }.sub-font-icon {border: 1px solid #ddd;padding: 12px 5px;text-align: center;position: relative;z-index: 9;height: 22px }.sub-font-icon input[type=radio]:hover+label span.wpfm-key-name {font-size: 10px;position: absolute;top: 1px;background: #000;color: #fff;border-radius: 5px;left: 5px;right: 5px;width: auto;z-index: 99;padding: 1px 0 3px }.sub-font-icon input[type=radio]:hover+label span.wpfm-key-name::before {background: #000;content: '';height: 10px;width: 10px;position: absolute;left: 0;right: 0;bottom: -3px;transform: rotate(45deg);margin: 0 auto;z-index: -1 }.sub-font-icon input[type=radio] {opacity: 0 }.sub-font-icon input[type=radio]+label {margin-left: -20px;font-size: 0 }.sub-font-icon input[type=radio]:checked+label::after {background: #333;content: '';position: absolute;left: 0;right: 0;top: 0;bottom: 0;z-index: -1 }.sub-font-icon input[type=radio]:checked+label i, .sub-font-icon input[type=radio]:checked+label span {color: #fff }.sub-font-icon input[type=radio]:checked - .sub-font-icon {border-color: #333 }.wpfm-metaboxes-wrapper .wpfm-actions, .wpfm_panel .wpfm-admin-postbox-form-group {border-top: 1px solid #fff;border-bottom: 1px solid #eee }#wpfm_icon_search {margin: 10px 0 15px }.menu-icon-food_manager .wp-menu-image img {width: 28px;margin-top: 0;padding-top: 3px !important;max-width: 100% }.wpfm-admin-left-col, .wpfm-admin-right-col {display: inline-flex;align-items: center }button.button.button-small.wp_food_manager_upload_file_button, button.button.button-small.wp_food_manager_upload_file_button_multiple {margin-top: 5px }.food-manager-uploaded-file span.wpfm-icon {border: 2px solid #e4e4e4;display: inline-block;padding: 10px;border-radius: 4px;box-sizing: border-box }.wpfm-food-menu li {display: flex;justify-content: space-between;align-items: center }.wpfm-admin-postbox-meta-data .wpfm-admin-postbox-form-field label {display: block;font-weight: 700;margin: 0 }.wpfm-admin-postbox-meta-data .wpfm-admin-postbox-form-field {line-height: 2em;box-sizing: border-box;padding: 0 12px 0 0;margin: 0 -1px }.wpfm-admin-postbox-drop-btn {width: 80px }.wpfm-admin-postbox-drop-btn input#wpfm-admin-add-food {font-size: 13px }label.add-food-small {font-weight: 500 !important;color: #787c82 }.wpfm-admin-postbox-drop-btn input[type=button], .wpfm-admin-postbox-form-field .wpfm-admin-postbox-file_url input:first-child, .wpfm-admin-postbox-form-field .wpfm-admin-postbox-file_url select:first-child {flex: 1 }.wpfm-admin-postbox-form-field .wpfm-admin-postbox-file_url, .wpfm-admin-postbox-meta-data {display: flex;flex-wrap: wrap }.wpfm-admin-postbox-meta-data .wpfm-admin-postbox-form-field input, .wpfm-admin-postbox-meta-data .wpfm-admin-postbox-form-field select {width: 100%;max-width: 100%;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;vertical-align: middle }.wpfm-admin-postbox-meta-data .wpfm-admin-postbox-form-field .checkbox {width: 1em }.wpfm-admin-postbox-drop-btn, .wpfm-food-item-remove span.dashicons.dashicons-dismiss {display: flex }.wpfm-admin-food-menu-container.wpfm-flex-col.wpfm-admin-postbox-meta-data {flex-direction: column }.wpfm-admin-menu-selection.wpfm-admin-postbox-form-field {max-width: 270px }.wpfm-admin-food-menu-items .wpfm-admin-left-col span.dashicons, span.food-manager-uploaded-file {margin-right: 10px }.wpfm-food-menu.menu li.menu-item-handle:last-child {margin-bottom: 10px }.wpfm-food-menu.menu li.menu-item-handle {margin-bottom: 5px;max-width: 600px }.wpfm-food-item-remove {text-decoration: none }.wp-food-manager-food-form-field-editor .save-actions .reset:hover, .wp-food-manager-food-form-field-editor table .field-actions a.delete-field:hover, .wpfm-food-item-remove:hover {color: red }#food_manager_data .inside {margin: 0;padding: 0 }#food_manager_data .panel-wrap {overflow: hidden;background: #fff }#food_manager_data ul.wpfm-tabs {margin: 0;width: 20%;float: left;line-height: 1em;padding: 0 0 10px;position: relative;background-color: #fafafa;border-right: 1px solid #eee;box-sizing: border-box }#food_manager_data ul.wpfm-tabs li {margin: 0;padding: 0;display: block;position: relative }#food_manager_data ul.wpfm-tabs li a {margin: 0;padding: 10px;display: block;box-shadow: none;text-decoration: none;line-height: 20px !important;border-bottom: 1px solid #eee;border-left: 3px solid transparent }#food_manager_data ul.wpfm-tabs li a span {margin-left: .618em;margin-right: .618em }#food_manager_data ul.wpfm-tabs li.general_options a::before {content: "\f107" }#food_manager_data ul.wpfm-tabs li.advanced_tab a::before {content: "\f111" }#food_manager_data ul.wpfm-tabs li.nutritions_tab a::before {content: "\f511" }#food_manager_data ul.wpfm-tabs li.ingredient_tab a::before {content: "\f175" }#food_manager_data ul.wpfm-tabs li a::before {font-weight: 400;line-height: 1;content: "\f107";text-decoration: none }#food_manager_data ul.wpfm-tabs li.toppings_tab a::before {content: "\f509" }#food_manager_data .wpfm_panel {float: left;width: 80% }.wpfm_panel {min-height: 175px;box-sizing: border-box }.panel, .wpfm_panel {color: #555 }#food_manager_data .wpfm-tabs a.nav-tab-active {border-left: 3px solid #0b8ac7 }.wpfm_panel p.wpfm-admin-postbox-form-field {padding: 5px 20px 5px 200px !important;display: flex;align-items: center;column-gap: 5px }#advanced_product_data p.wpfm-admin-postbox-form-field, .type-food_manager td.food_banner.column-food_banner {display: flex;align-items: center }.wpfm_panel label {float: left;width: 200px;padding: 0;margin: 0 0 0 -200px;font-size: 14px;color: #555 }.wpfm_panel .wpfm-small-field, .wpfm_panel input[type=email].wpfm-small-field, .wpfm_panel input[type=number].wpfm-small-field, .wpfm_panel input[type=password].wpfm-small-field, .wpfm_panel input[type=text].wpfm-small-field, .wpfm_panel input[type=url].wpfm-small-field {width: 50% }.wpfm_panel .wpfm-admin-postbox-form-group:first-child {border-top: 0 }#food_manager_data ul.wpfm-tabs::after {content: "";display: block;width: 100%;height: 9999em;position: absolute;bottom: -9999em;left: 0;background-color: #fafafa;border-right: 1px solid #eee }.wpfm_panel p {margin: 9px 0;font-size: 12px;line-height: 24px }.wpfm_panel .description {padding: 0;margin: 0 0 0 7px;clear: none;display: inline }.wpfm_panel .checkbox {margin: 4px 0 !important;vertical-align: middle }.wpfm-metaboxes {padding: .5em .75em .5em 1em !important }.wpfm-metaboxes .wpfm-metabox.closed h3 {border: 0 }.wpfm-metaboxes .wpfm-metabox h3 {margin: 0 !important;padding: .75em .75em .75em 1em !important;font-size: 1em !important;overflow: hidden;zoom: 1;cursor: pointer }.wpfm-metaboxes .wpfm-metabox.wpfm_attribute h3 .wpfm-sort, .wpfm-metaboxes .wpfm-metabox.wpfm_attribute h3 .wpfm-togglediv, .wpfm-metaboxes .wpfm-metabox.wpfm_attribute h3 a.wpfm-delete-btn {margin-top: .25em }.wpfm-metaboxes .wpfm-metabox h3 a.wpfm-delete-btn {color: red;font-weight: 400;line-height: 26px;text-decoration: none;position: relative }.wpfm-metaboxes .wpfm-metabox h3 a.wpfm-delete-btn, .wpfm-metaboxes .wpfm-metabox h3 button, a.button.wpfm-add-row {float: right }.wpfm-metaboxes .wpfm-metabox h3 .wpfm-togglediv {background-position: 6px 5px !important;height: 26px }.wpfm-metaboxes .wpfm-metabox .wpfm-togglediv {width: 27px;float: right }.wpfm-attributes-wrap h3 .wpfm-sort {visibility: hidden;width: 17px;height: 26px;cursor: move;float: right;font-size: 15px;font-weight: 400;margin-right: .5em;text-align: center;vertical-align: middle }.wpfm-tooltip {cursor: help;text-decoration: none }#toppings_food_data_content .wpfm-admin-options-table .widefat tfoot, #toppings_food_data_content .wpfm-admin-options-table .widefat thead {background: #f6f7f7 }.wpfm-input-field.parent-option-description {display: flex;flex-flow: column;row-gap: 12px }.wpfm-metaboxes-wrapper .wpfm-metabox:nth-child(2n) h3 {background: #ebebeb }.wpfm-metaboxes .wpfm-metabox .wpfm-togglediv::before {content: "\f142" !important;cursor: pointer;display: inline-block;font: 400 20px/1 Dashicons;line-height: .5 !important;padding: 8px 10px;position: relative;right: 12px;top: 0 }.wpfm-metaboxes .wpfm-metabox.closed .wpfm-togglediv::before {content: "\f140" !important }.wpfm-metaboxes .wpfm-metabox h3 strong {margin-right: 10px;line-height: 26px;font-weight: 700 }.wpfm-attributes-wrap h3 .wpfm-sort::before {content: "\f333";font-family: Dashicons;text-align: center;line-height: 28px;color: #999;display: block;width: 17px;float: left;height: 100% }.wpfm-attributes-wrap h3 .wpfm-sort:hover::before {color: #777 }.wpfm-attributes-box {background-color: #fdfdfd;border-top: 1px solid #eee }.wpfm-content {padding: 1em }.wpfm-attributes-wrap .wpfm-content::after, .wpfm-attributes-wrap .wpfm-content::before {content: " ";display: table }.wpfm-form-row.wpfm-form-row-first, .wpfm-form-row.wpfm-form-row-last {width: 48%;float: right }.wpfm-form-row.wpfm-form-row-first {clear: both;float: left }.wpfm-content::after, .wpfm-form-row.wpfm-form-row-full {clear: both }.wpfm-form-row label {display: inline-block;float: none;width: auto;margin: auto }.wpfm-form-row input[type=color], .wpfm-form-row input[type=date], .wpfm-form-row input[type=datetime-local], .wpfm-form-row input[type=datetime], .wpfm-form-row input[type=email], .wpfm-form-row input[type=month], .wpfm-form-row input[type=number], .wpfm-form-row input[type=password], .wpfm-form-row input[type=search], .wpfm-form-row input[type=tel], .wpfm-form-row input[type=text], .wpfm-form-row input[type=time], .wpfm-form-row input[type=url], .wpfm-form-row input[type=week], .wpfm-form-row select, .wpfm-form-row textarea {width: 100%;vertical-align: middle;margin: 2px 0 0;padding: 5px }.wpfm-form-row select {height: 40px }.wpfm-metaboxes-wrapper .wpfm-actions {margin: 0 !important;padding: 9px 12px !important }.wpfm-metaboxes-wrapper .wpfm-metabox {background: #fff;margin: 15px 0 0 !important;border-bottom: 1px solid #c3c4c7;border-radius: 4px }.wpfm-actions .wpfm-add-button {display: block;margin-left: auto }.wpfm-metaboxes .wpfm-metabox .wpfm-metabox-content .wpfm-metabox-footer.wpfm-actions {padding-top: 0 !important;margin-right: auto !important }td.fm_categories.column-fm_categories span.food-category {background: #f0f0f0;padding: 5px 7px;margin: 3px;word-wrap: unset;display: inline-block;vertical-align: top;border-radius: 4px }input[name="_food_veg_nonveg"] {border-radius: 0 }._food_veg_nonveg .radio.vegetarian {border-color: #2a0 }._food_veg_nonveg .radio.vegetarian:focus {box-shadow: 0 0 0 1px #2a0 }._food_veg_nonveg .radio.vegetarian:checked::before {background-color: #2a0 }._food_veg_nonveg .radio.non-vegetarian {border-color: red }._food_veg_nonveg .radio.non-vegetarian:focus {box-shadow: 0 0 0 1px red }._food_veg_nonveg .radio.non-vegetarian:checked::before {background-color: red }.wpfm_panel .wpfm-admin-postbox-form-field._food_veg_nonveg span.wpfm-input-field label {float: none;margin: 0 5px 0 0 }.wpfm_panel .wpfm-admin-postbox-form-field span.wpfm-input-field label {float: none;margin: 0 }mark.fm_outofstock {color: #a44;background: 0 0;font-weight: 700 }mark.fm_instock {color: #7ad03a;background: 0 0;font-weight: 700 }.widefat th.column-food_banner span {display: inline-block;text-indent: -9999px;position: relative;height: 1em;width: 1em;margin: 0 auto;font-size: 14px }.widefat th.column-food_banner span:before {font-weight: 400;line-height: 1;margin: 0;text-indent: 0;position: absolute;top: 0;left: 0;width: 100%;height: 100%;text-align: center }#the-list .column-food_banner img.wpfm-organic-tag-icon {margin-left: 10px;width: 20px;max-width: 100% }.parent-organic-tag {position: relative;display: inline-block;vertical-align: top;cursor: help }.parent-organic-tag:hover::before {content: attr(data-icon-type);position: absolute;right: auto;background: #464646;color: #fff;font-size: 11px;border-radius: 4px;left: 36px;top: 0;padding: 3px 10px;z-index: 9;width: auto }.parent-organic-tag:hover::after {content: '';background: #464646;height: 9px;width: 9px;position: absolute;transform: rotate(45deg);top: 7px;right: -12px }#wpfm-ingredient-container, #wpfm-nutrition-container {padding: 5px;display: -webkit-box;display: -ms-flexbox;display: flex }.wpfm-lists-container .wpfm-active-list.wpfm-sortable-list {-webkit-box-flex: 1;-ms-flex: 1;flex: 1;margin-right: 5px }.wpfm-lists-container .wpfm-sortable-list {position: relative;padding: 50px 10px 10px;border: 1px solid #dcdcde;margin: 0;min-height: 50px;-webkit-box-flex: 2;-ms-flex: 2;flex: 2 }.wpfm-sortable-list:before {content: attr(data-title);background: #f6f7f7;padding: 10px 0;text-align: center;font-weight: 700;position: absolute;display: block;width: 100%;top: 0;margin-left: -10px;border-bottom: 1px solid #dcdcde }.post-type-food_manager .ui-sortable tr:hover, .wpfm-sortable-list .wpfm-sortable-item {cursor: move }.wpfm-sortable-list .wpfm-sortable-item label {cursor: move;width: auto;float: none;margin: 0 }.wpfm-clear::after {clear: both;content: "";display: block }.wpfm-sortable-list .wpfm-item-search.with-title {margin-bottom: 30px;padding: 15px 15px 15px 20px;background: #f6f7f7;margin-left: 5px;border: 1px solid #dcdcde }.wpfm-sortable-list .wpfm-item-search.with-title .wpfm-search-label {display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-align: center;-ms-flex-align: center;align-items: center;float: none;margin: 0;width: auto }.wpfm-sortable-list .wpfm-item-search.with-title .wpfm-search-label span {margin-right: 30px;font-size: 15px }.wpfm-sortable-list .wpfm-item-search.with-title .wpfm-search-label input {min-height: 36px;min-width: 250px }.wpfm-available-list .wpfm-sortable-item {width: 150px;float: left;background: #f6f7f7;padding: 8px 5px;margin: 5px;-webkit-box-sizing: border-box;box-sizing: border-box;display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-pack: center;-ms-flex-pack: center;justify-content: center;-webkit-box-align: center;-ms-flex-align: center;align-items: center;line-height: 1.4;border: 1px solid #dcdcde }.wpfm-sortable-item-values>* {width: 48%;box-sizing: border-box }.wpfm-active-list .wpfm-sortable-item {background: #f6f7f7;padding: 10px 5px 10px 10px;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;border: 1px solid #dcdcde }.wpfm-active-list .wpfm-sortable-item+li {margin-top: 6px }.wrap.food-manager-settings-wrap h2.nav-tab-wrapper {margin-bottom: 20px }.wpfm_error_tip {color: #fff;font-size: .8em;background: #d82223;text-align: center;border-radius: 3px;padding: .618em 1em;box-shadow: 0 1px 3px rgba(0, 0, 0, .2);max-width: 20em;line-height: 1.8em;position: absolute;white-space: normal;margin: 1.5em 1px 0 -1em;z-index: 9999999 }.wpfm_error_tip::after {content: "";display: block;border: 8px solid #d82223;border-right-color: transparent;border-left-color: transparent;border-top-color: transparent;position: absolute;top: -3px;left: 50%;margin: -1em 0 0 -3px }.wpfm_panel label.wpfm-field-switch {position: relative;display: inline-block;width: 50px;height: 24px;float: none;margin: 0 }.wpfm-input-field {background: #f6f7f7;padding: 15px;position: relative;border-radius: 4px;border: 1px solid #dcdcde;margin: 0;width: 100%;display: inline-block;vertical-align: top;box-sizing: border-box }.wpfm-input-field .wp-editor-container textarea {height: 126px;width: 100%;border: 0;box-shadow: none }.wpfm-field-switch-slider {position: absolute;cursor: pointer;top: 0;left: 0;right: 0;bottom: 0;background-color: #d3d6df;-webkit-transition: .4s;-o-transition: .4s;transition: .4s }.wpfm-field-switch-slider.round {border-radius: 34px }.wpfm-field-switch-slider.round:before {border-radius: 50% }.wpfm-field-switch input {opacity: 0;width: 0;height: 0 }.wpfm-field-switch input[type=checkbox]:checked::before {content: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%233582c4%27%2F%3E%3C%2Fsvg%3E");margin: -.1875rem 0 0 -.25rem;height: 1.3125rem;width: 1.3125rem }.wpfm-field-switch-slider:before {position: absolute;content: "";height: 16px;width: 16px;left: 4px;bottom: 4px;background-color: #fff;-webkit-transition: .4s;-o-transition: .4s;transition: .4s }input:checked+.wpfm-field-switch-slider {background-color: var(--wpfm-primary-color) }input:checked+.wpfm-field-switch-slider:before {-webkit-transform: translateX(26px);-ms-transform: translateX(26px);transform: translateX(26px) }div#wpfm-loading {position: fixed;width: 100%;height: 100%;z-index: 999999999;background: rgba(0, 0, 0, .7);top: 0 }#wpfm-loading span.wpfm-loading {display: block;top: 50%;position: fixed;color: #fff;font-size: 20px;font-weight: 700;width: 100%;text-align: center }.widefat .column-food_actions {text-align: right;width: 120px }.widefat .column-food_actions .actions {padding-top: 2px }.widefat .column-food_actions a.button {display: inline-block;margin: 0 0 2px 4px;cursor: pointer;padding: 0 6px !important;font-size: 1em !important;line-height: 2em !important;overflow: hidden }.widefat .column-food_actions a.button-icon {width: 2em !important;padding: 0 !important }.wp-food-manager-food-form-field-editor table tr:nth-child(odd) td {background-color: #f9f9f9 }.wp-food-manager-food-form-field-editor table .sort-column {cursor: move;color: #ccc }.wp-food-manager-food-form-field-editor table td {overflow: visible;padding: 1em 0 1em 1em;vertical-align: middle }.wp-food-manager-food-form-field-editor table .sort-column:before {content: "\f333";font-family: dashicons }.wp-food-manager-food-form-field-editor table td input.input-text, .wp-food-manager-food-form-field-editor table td select {width: 100%;min-width: 100px }.wp-food-manager-food-form-field-editor table td .file-options .multiple-files input {width: auto;display: inline-block;min-width: 16px }.wp-food-manager-food-form-field-editor table td:last-child, .wp-food-manager-food-form-field-editor table th:last-child {padding-right: 1em }.wp-food-manager-food-form-field-editor table .field-actions a.delete-field {color: #ccc;padding: 1em 0 0;width: 1em;height: 0;overflow: hidden;display: inline-block;position: relative }.wp-food-manager-food-form-field-editor table .field-actions a.delete-field:before {content: "\f153";font-family: dashicons;font-size: 1em;line-height: 1em;vertical-align: top;position: absolute;top: 0;left: 0 }.wp-food-manager-food-form-field-editor table tfoot th {vertical-align: middle;line-height: 28px }.wp-food-manager-food-form-field-editor table th {padding: 1em 0 1em 1em }.wp-food-manager-food-form-field-editor .save-actions {text-align: right }.wp-food-manager-food-form-field-editor .save-actions input {margin-left: 1em }.wp-food-manager-food-form-field-editor .save-actions .reset {color: #bbb;text-decoration: none;position: relative;top: 4px }.form-field .chosen-container {width: 100% !important }.food-manager-uploaded-file-preview {display: inline-block;position: relative;vertical-align: top }.food-manager-uploaded-file-preview img {max-height: 100px;max-width: 100px;border: 2px solid #ccc;border-radius: 6px }.food-manager-uploaded-file-preview .food-manager-remove-uploaded-file {font-size: 0;height: 20px;width: 20px;background: #fff;position: absolute;top: 2px;right: 2px;border-radius: 0 4px;border: none;box-shadow: 2px 2px 10px rgba(0, 0, 0, .2) }.food-manager-uploaded-file-preview .food-manager-remove-uploaded-file::before {content: "\ea0f";font-family: wp-food-manager;font-size: 10px;color: red;top: 50%;position: absolute;left: 50%;transform: translate(-50%, -50%);transition: .2s }.food-manager-uploaded-files .food-manager-uploaded-file {margin-bottom: 20px;display: inline-block;padding-right: 20px }.wpfm-food-menu .menu-item-handle .item-title {word-break: break-word }.wpfm-admin-menu-selection select {margin-top: 10px }.widefat td.food_banner.column-food_banner .food_banner img {max-width: 60px;height: auto }.type-food_manager_menu .thumbnail img{max-width: 70px;height: auto;}span.no-menu-item-handle {font-size: 14px;font-weight: 500;background: bisque;padding: 5px 10px;border-radius: 4px;display: inline-block }a.wpfm-tooltip.food_title {cursor: pointer }.wpfm-metaboxes .wpfm-metabox-content.wpfm-variation-box {border-top: 1px solid #ccd0d4 }.white-background {float: left;width: 100%;background-color: #fff;border: 1px solid #e1e1e1;padding: 10px;box-sizing: border-box;margin: 0 0 20px }.wpfm-input-field .mce-btn.mce-active button, .wpfm-input-field .mce-btn.mce-active i, .wpfm-input-field .mce-btn.mce-active:hover button, .wpfm-input-field .mce-btn.mce-active:hover i {color: #595959 }.admin-setting-left {float: left;width: 70% }.box-info {position: relative;min-width: 255px;border: 1px solid #e5e5e5;-webkit-box-shadow: 0 1px 1px rgb(0 0 0 / 4%);box-shadow: 0 1px 1px rgb(0 0 0 / 4%);background: #fff;float: right !important;box-sizing: border-box;width: 28%;padding: 15px }.box-info h3 {padding: 0 0 10px 10px;font-size: 14px;margin-top: 5px;border-bottom: 1px solid #efefef }.wpfm-plugin_info-inside {max-width: 100%;overflow: hidden }.wpfm-plugin_info-inside .wpfm-setup-help-center-block {background: #fff;border: 1px solid #e1e1e4;box-sizing: border-box;border-radius: 7px;display: flex;margin-bottom: 10px;padding: 10px 15px;text-align: left;align-items: center }.wpfm-plugin_info-inside .wpfm-setup-help-center-block .wpfm-setup-help-center-block-icon {margin-right: 25px }.wpfm-plugin_info-inside .wpfm-setup-help-center-faqs-icon, .wpfm-plugin_info-inside .wpfm-setup-help-center-knowledge-base-icon, .wpfm-plugin_info-inside .wpfm-setup-help-center-support-icon, .wpfm-plugin_info-inside .wpfm-setup-help-center-video-tutorial-icon {display: inline-block;background: url(../images/support-page-sprites-img.png) 0 0/140px no-repeat;overflow: hidden;text-indent: -9999px;text-align: left }.wpfm-plugin_info-inside .wpfm-setup-help-center-knowledge-base-icon {background-position: -68px 1px;width: 60px;height: 60px }.wpfm-plugin_info-inside .wpfm-setup-help-center-faqs-icon {background-position: -5px 1px;width: 60px;height: 60px }.wpfm-plugin_info-inside .wpfm-setup-help-center-video-tutorial-icon {background-position: -72px -62px;width: 60px;height: 60px }.wpfm-plugin_info-inside .wpfm-setup-help-center-block-content .wpfm-setup-help-center-block-heading {font-weight: 600;line-height: 1.42;color: #111;font-size: 16px;margin-bottom: 5px }.wpfm-plugin_info-inside .wpfm-setup-help-center-block-content .wpfm-setup-help-center-block-desc {font-size: 14px;line-height: 1.42;color: #555 }.wpfm-plugin_info-inside .wpfm-setup-help-center-block-content a.wpfm-setup-help-center-block-link {display: inline-block;font-size: 14px;font-style: normal;font-weight: 500;line-height: 18px;margin-top: 10px;position: relative;text-decoration: none;color: var(--wpfm-primary-color);transition: color .2s }.wpfm-plugin_info-inside .wpfm-setup-help-center-block-content a.wpfm-setup-help-center-block-link:hover {color: #000 }.wpfm-plugin_info-inside span.light-grey {text-align: center;display: block;padding-top: 10px;font-size: 14px;margin-top: 5px;border-top: 1px solid #efefef }.wpfm-plugin_info-inside a img {width: 100%;display: block;max-width: 200px;margin: 5px auto 0 }.wpfm-tooltip {position: relative }.wpfm-tooltip:hover:before {content: attr(wpfm-data-tip);background: #464646;color: #fff;font-size: 11px;border-radius: 4px;position: absolute;left: 50%;top: calc(100% + 6px);padding: 3px 10px;z-index: 9999999999;width: auto;transform: translate(-50%, 0);white-space: nowrap }.wpfm-tooltip:hover:after {content: '';background: #464646;height: 9px;width: 9px;position: absolute;transform: rotate(45deg);top: calc(100% + 2px);left: calc(50% - 4.5px) }.widefat .column-food_actions a.wpfm-tooltip {padding: 0 !important;width: 30px;height: 30px;text-align: center;overflow: inherit }.widefat .column-food_actions a.wpfm-tooltip span {line-height: 30px;margin: 0 auto;font-size: 16px }span.toppings-radio-btn label {display: inline-block;margin-right: 10px }span.toppings-radio-btn input[type=radio] {margin-right: 0 }span.toppings-radio-btn {margin-top: 5px;display: block }.mce-btn button:hover {background: 0 0;color: transparent }.mce-btn.mce-active button, .mce-btn.mce-active i, .mce-btn.mce-active:hover button, .mce-btn.mce-active:hover i {color: #000 !important }@media only screen and (max-width:1280px) {.wpfm_panel .wpfm-small-field, .wpfm_panel input[type=email].wpfm-small-field, .wpfm_panel input[type=number].wpfm-small-field, .wpfm_panel input[type=password].wpfm-small-field, .wpfm_panel input[type=text].wpfm-small-field {width: 80% }.wpfm_panel .description {display: block;clear: both;margin-left: 0 }.admin-setting-left, .box-info {width: 100% }}@media only screen and (max-width:900px) {#food_manager_data ul.wpfm-tabs {width: 10% }#food_manager_data ul.wpfm-tabs li a {position: relative;text-indent: -999px;padding: 10px }#food_manager_data ul.wpfm-tabs li a::before {position: absolute;top: 0;right: 0;bottom: 0;left: 0;text-indent: 0;text-align: center;line-height: 40px;width: 100%;height: 40px }.wpfm_panel.wpfm-metaboxes-wrapper .wpfm-actions, .wpfm_panel.wpfm-metaboxes-wrapper .wpfm-metaboxes {margin-right: -12.5% !important }}@media only screen and (max-width:782px) {#food_manager_data .checkbox {width: 25px }}@media only screen and (max-width:500px) {.wpfm_panel p.wpfm-admin-postbox-form-field {padding: 5px 20px !important }#food_manager_data label {float: none;width: auto;display: block;margin: 0 }} -
wp-food-manager/trunk/assets/css/frontend.css
r2902336 r3022874 10 10 # 6. CATEGORY & TYPE 11 11 # 7. DASHBOARD HEADER 12 7.1 DASHBOARD 12 13 # 8. CHOSEN 13 14 # 9. ADD FOOD FORM … … 21 22 # 15. ALL MIX 22 23 # 16. MEDIA QUERY 24 # 17. WOOCOMMERCE 23 25 24 26 --------------------------------------------------------------*/ … … 32 34 --wpfm-gray-border-color: #dddddd; 33 35 --wpfm-gray-bg-color: #f5f5f5; 36 } 37 * { 38 box-sizing: inherit; 34 39 } 35 40 … … 798 803 /* ===== 7. FOOD DASHBOARD HEADER END ===== */ 799 804 805 /* ===== 7.1 FOOD DASHBOARD START ===== */ 806 .wpfm-main-vmenu-dashboard-wrapper .wpfm-main-vmenu-dashboard-nav ul.wpfm-main-vmenu-dashboard-ul { 807 border-left: 1px solid var(--wpfm-gray-border-color); 808 border-right: 1px solid var(--wpfm-gray-border-color); 809 list-style: none; 810 } 811 .wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li, .wpfm-main-vmenu-dashboard-wrapper .wpfm-main-vmenu-dashboard-nav-menu .wpfm-main-vmenu-dashboard-nav ul { 812 list-style: none; 813 margin: 0; 814 padding: 0; 815 } 816 .wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li a.wpfm-main-vmenu-dashboard-link.wpfm-main-vmenu-dashboard-link-active { 817 font-weight: 600; 818 color: var(--wpfm-primary-color); 819 transition: .2s linear; 820 } 821 .wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li:first-child .wpfm-main-vmenu-dashboard-link { 822 border-top: 1px solid var(--wpfm-gray-border-color); 823 } 824 .wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li .wpfm-main-vmenu-dashboard-link { 825 display: flex; 826 align-items: center; 827 padding: 10px 15px; 828 color: var(--wpfm-dark-color); 829 font-size: 16px; 830 word-break: break-word; 831 text-decoration: none; 832 border-bottom: 1px solid var(--wpfm-gray-border-color); 833 transition: .2s linear; 834 } 835 .wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li .wpfm-main-vmenu-dashboard-link i { 836 margin-right: 10px; 837 font-size: 14px; 838 } 839 .organizer-related-data-wrapper .show-organizer-info .wpfm-list-group .organizer-name-list .organizer-list-items a:hover, .venue-related-data-wrapper .show-venue-info .wpfm-list-group .venue-name-list .venue-list-items a:hover, .wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li .wpfm-main-vmenu-dashboard-link:hover, .wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li .wpfm-main-vmenu-dashboard-link:hover i, .wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li a.wpfm-main-vmenu-dashboard-link.wpfm-main-vmenu-dashboard-link-active i, .wpfm-main-vmenu-dashboard-wrapper .wpfm-main-vmenu-dashboard-content-wrap .wpfm-dashboard-events-block-wrap .wpfm-dashboard-event-list-wrapper .wpfm-dashboard-event-list .wpfm-dashboard-event-name a:hover, .wpfm-single-event-page .wpfm-single-event-footer .wpfm-venue-wrapper .wpfm-venue-profile .wpfm-venue-name.wpfm-heading-text a:hover, .wpfm-theme-text-button{ 840 color: var(--wpfm-primary-color); 841 } 842 /* ===== 7.1 FOOD DASHBOARD END ===== */ 800 843 801 844 … … 1360 1403 margin: 0; 1361 1404 word-break: break-word; 1405 display: flex; 1362 1406 } 1363 1407 … … 1380 1424 color: var(--wpfm-primary-color); 1381 1425 font-size: 18px; 1426 } 1427 .wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-type-tag { 1428 margin-left: 10px; 1429 margin-top: 2px; 1430 flex: 0 0 20px; 1431 height: 20px; 1432 width: 20px; 1382 1433 } 1383 1434 … … 1567 1618 column-gap: 15px; 1568 1619 } 1569 1620 .wpfm-single-food-page .wpfm-food-title .wpfm-food-type-tag { 1621 height: 20px; 1622 } 1570 1623 .wpfm-single-food-page .wpfm-food-price { 1571 1624 margin: 10px 0; … … 2537 2590 2538 2591 .fm-food-menu-container .food-list-box:hover { 2539 box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.12);2592 box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.10); 2540 2593 background-color: var(--wpfm-white-color); 2541 2594 color: var(--wpfm-dark-color); … … 2588 2641 width: 100%; 2589 2642 } 2643 2644 2645 .wpfm-accordion-item { 2646 border: 1px solid var(--wpfm-gray-border-color); 2647 padding: 15px 15px 5px; 2648 margin-top: -1px; 2649 border-radius: 4px; 2650 margin-bottom: 15px; 2651 } 2652 .wpfm-accordion-item .wpfm-accordion-action { 2653 cursor: pointer; 2654 font-weight: 500; 2655 position: relative; 2656 padding-right: 40px; 2657 padding-bottom: 10px; 2658 } 2659 .wpfm-accordion-item .wpfm-accordion-action:after { 2660 content: "\ea0a"; 2661 font-family: 'wpfm-restaurant-manager'; 2662 font-size: 10px; 2663 font-weight: normal; 2664 width: 24px; 2665 height: 24px; 2666 background-color: var(--wpfm-gray-bg-color); 2667 border-radius: 100px; 2668 display: flex; 2669 align-items: center; 2670 justify-content: center; 2671 position: absolute; 2672 right: 0px; 2673 top: 0px; 2674 } 2675 .wpfm-accordion-item .wpfm-accordion-body { 2676 display: none; 2677 } 2678 .wpfm-accordion-item-show .wpfm-accordion-body { 2679 display: block; 2680 } 2681 .wpfm-accordion-item-show .wpfm-accordion-action:after { 2682 content: "\ea0b"; 2683 } 2684 .wpfm-accordion-item.wpfm-accordion-item-show { 2685 box-shadow: 0 0px 10px rgb(0 0 0 / 10%); 2686 } 2687 2688 2590 2689 2591 2690 /* ===== 14. FOOD MENU END ===== */ … … 2878 2977 width: inherit; 2879 2978 } 2880 } 2979 table.wpfm-responsive-table-wrapper td.wpfm_data_td_empty { 2980 padding: 10px!important; 2981 } 2982 } 2983 2881 2984 2882 2985 @media screen and (max-width: 768px) { … … 3015 3118 3016 3119 /* ===== 16. MEDIA QUERY END ===== */ 3120 3121 /* ===== 17. WOOCOMMERCE START ===== */ 3122 3123 .woocommerce .woocommerce-cart-form .shop_table .cart-page td{ 3124 text-align: left !important; 3125 } 3126 @media screen and (max-width: 768px) { 3127 .woocommerce table.shop_table_responsive tr.cart-page td::before{ 3128 display: none !important; 3129 } 3130 } 3131 3132 .notification { 3133 background-color: rgb(216, 234, 235); 3134 color: #721c24; 3135 padding: 10px; 3136 margin-bottom: 15px; 3137 border: 1px solid rgb(216, 234, 235); 3138 } 3139 3140 /* ===== 17. WOOCOMMERCE END ===== */ -
wp-food-manager/trunk/assets/css/frontend.min.css
r2902320 r3022874 1 :root{--wpfm-primary-color:#ff4600;--wpfm-dark-color:#000000;--wpfm-gray-color:#555555;--wpfm-white-color:#ffffff;--wpfm-gray-border-color:#dddddd;--wpfm-gray-bg-color:#f5f5f5} [class^=wpfm]{box-sizing:border-box;-webkit-box-sizing:border-box}.wpfm-main{font-size:16px;line-height:1.42;color:var(--wpfm-dark-color);font-weight:400}.wpfm-main a{color:var(--wpfm-gray-color);text-decoration:none;outline:0;transition:color .2s}.wpfm-main a:active,.wpfm-main a:focus,.wpfm-main a:hover{color:var(--wpfm-primary-color);text-decoration:none;outline:0}.wpfm-main b,.wpfm-main strong{font-weight:600}.wpfm-loading,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-single-image-wrapper,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper{position:relative}.wpfm-main .wpfm-heading-text{font-weight:400}.wpfm-loading::before{content:"";height:100%;width:100%;position:absolute;left:0;top:0;z-index:99;background:rgba(255,255,255,.7)}.wpfm-loading::after{content:"";background-image:url(../images/ajax-loader.gif);position:absolute;height:30px;width:30px;background-repeat:no-repeat;background-size:contain;background-position:center;left:50%;top:50%;transform:translate(-50%,-50%);z-index:100}.wpfm-alert{position:relative;padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:5px}.wpfm-alert a{background:rgba(0,0,0,.6);font-size:14px;line-height:15px;color:var(--wpfm-white-color);padding:5px 10px;border-radius:5px;display:inline-block;transition:.2s}.wpfm-alert a:hover{background:var(--wpfm-dark-color);color:var(--wpfm-white-color)}.wpfm-alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.wpfm-alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.wpfm-alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.wpfm-alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.wpfm-alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.wpfm-alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.wpfm-alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.wpfm-alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.food-manager-pagination{text-align:center;display:inline-block;width:100%}.food-manager-pagination ul.page-numbers{margin:0 auto;padding:0;display:inline-flex}.food-manager-pagination ul.page-numbers li{list-style:none;display:inline-block;margin:0 2px}.food-manager-pagination ul.page-numbers li .page-numbers{font-size:14px;line-height:20px;font-weight:400;padding:5px 10px;display:inline-block;border:2px solid var(--wpfm-gray-border-color);background:var(--wpfm-white-color);color:var(--wpfm-gray-color)}.food-manager-pagination ul.page-numbers li .page-numbers:hover{border-color:#999}.food-manager-pagination ul.page-numbers li .page-numbers.current{border-color:var(--wpfm-primary-color);background:var(--wpfm-primary-color);color:var(--wpfm-white-color)}.wpfm-form-wrapper{margin-bottom:20px;line-height:25px}.wpfm-form-wrapper .wpfm-form-title{font-size:23px;line-height:28px;font-weight:500;color:var(--wpfm-dark-color);padding:0;margin:0 0 20px}.wpfm-form-wrapper fieldset{border:none;margin:0 0 20px;padding:0}.wpfm-food-listings-header,.wpfm-form-wrapper .wpfm-form-group,.wpfm-single-food-image{margin-bottom:20px}.wpfm-form-wrapper .wpfm-form-group .require-field{color:red}.food_manager .featured-media,.post-thumbnail .wp-post-image,.single-food_manager .wp-post-image,.wpfm-form-wrapper .wpfm-form-group .food-manager-uploaded-files .food-manager-uploaded-file.empty-src,.wpfm-form-wrapper .wpfm-form-group .wpfm-form-label,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider ul.slick-dots li button::before,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider ul.slick-dots li::before,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider ul.slick-dots::before{display:none}.wpfm-form-wrapper .wpfm-form-group .wpfm-form-label-text{color:var(--wpfm-dark-color);margin:0 0 7px;display:inline-block}.wpfm-form-wrapper .wpfm-form-group input[type=color],.wpfm-form-wrapper .wpfm-form-group input[type=date],.wpfm-form-wrapper .wpfm-form-group input[type=datetime-local],.wpfm-form-wrapper .wpfm-form-group input[type=datetime],.wpfm-form-wrapper .wpfm-form-group input[type=email],.wpfm-form-wrapper .wpfm-form-group input[type=file],.wpfm-form-wrapper .wpfm-form-group input[type=month],.wpfm-form-wrapper .wpfm-form-group input[type=number],.wpfm-form-wrapper .wpfm-form-group input[type=password],.wpfm-form-wrapper .wpfm-form-group input[type=search],.wpfm-form-wrapper .wpfm-form-group input[type=tel],.wpfm-form-wrapper .wpfm-form-group input[type=text],.wpfm-form-wrapper .wpfm-form-group input[type=time],.wpfm-form-wrapper .wpfm-form-group input[type=url],.wpfm-form-wrapper .wpfm-form-group input[type=week],.wpfm-form-wrapper .wpfm-form-group select,.wpfm-form-wrapper .wpfm-form-group textarea{height:45px;width:100%;margin:0;outline:0;border:1px solid var(--wpfm-gray-border-color);border-radius:4px;font-size:16px;font-weight:400;line-height:45px;padding:0 15px;background-color:var(--wpfm-white-color);color:var(--wpfm-dark-color);transition:.2s}.wpfm-form-wrapper .wpfm-form-group input[type=color]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=date]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=datetime-local]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=datetime]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=email]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=file]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=month]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=number]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=password]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=search]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=tel]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=text]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=time]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=url]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=week]:hover,.wpfm-form-wrapper .wpfm-form-group select:hover,.wpfm-form-wrapper .wpfm-form-group textarea:hover{border-color:#999;background-color:var(--wpfm-white-color);transition:.2s}.wpfm-form-wrapper .wp-editor-container:focus,.wpfm-form-wrapper .wpfm-form-group input[type=color]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=date]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=datetime-local]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=datetime]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=email]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=file]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=month]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=number]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=password]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=search]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=tel]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=text]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=time]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=url]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=week]:focus,.wpfm-form-wrapper .wpfm-form-group select:focus,.wpfm-form-wrapper .wpfm-form-group textarea:focus{border-color:var(--wpfm-primary-color)}.wpfm-form-wrapper .wp-editor-container{border-radius:4px;overflow:hidden}.wpfm-form-wrapper .wp-editor-container:hover{border-color:#999;transition:.2s}.wpfm-form-wrapper .wpfm-form-group input[type=file]{line-height:20px;padding:8px 10px}.wpfm-form-wrapper .wpfm-form-group input[type=number]{padding-right:0;width:100%;max-width:unset}.wpfm-form-wrapper .wpfm-form-group select{padding:0 12px}.wpfm-form-wrapper .wpfm-form-group textarea{height:auto;padding:15px;line-height:22px}.food-manager-uploaded-file-preview span.food-manager-uploaded-file-name{padding:20px 10px 15px;display:inline-block;border:2px solid var(--wpfm-gray-border-color);border-radius:4px}.wpfm-form-wrapper .wpfm-form-group .food-manager-uploaded-files .food-manager-uploaded-file{margin-bottom:20px;display:inline-block;padding-right:20px;vertical-align:top}.wpfm-form-wrapper .wpfm-form-group .food-manager-uploaded-files .food-manager-uploaded-file .food-manager-uploaded-file-preview{display:inline-block;position:relative}.wpfm-form-wrapper .wpfm-form-group .food-manager-uploaded-files .food-manager-uploaded-file .food-manager-uploaded-file-preview img{max-height:100px;max-width:100px;border:2px solid var(--wpfm-gray-border-color);border-radius:6px}.wpfm-form-wrapper .wpfm-form-group .food-manager-uploaded-files .food-manager-uploaded-file .food-manager-uploaded-file-preview .food-manager-remove-uploaded-file{font-size:0;height:20px;width:20px;background:var(--wpfm-white-color);position:absolute;top:2px;right:2px;border-radius:0 4px;border:none;box-shadow:2px 2px 10px rgba(0,0,0,.2)}.wpfm-form-wrapper .wpfm-form-group .food-manager-uploaded-files .food-manager-uploaded-file .food-manager-uploaded-file-preview .food-manager-remove-uploaded-file::before{content:"\ea0f";font-family:wp-food-manager;font-size:10px;color:red;top:50%;position:absolute;left:50%;transform:translate(-50%,-50%);transition:.2s}.fm-food-menu-container .food-list-box:focus,.fm-food-menu-container .food-list-box>a,.wpfm-dashboard-main-title.wpfm-dashboard-main-filter a.wpfm-dashboard-header-btn:hover i,.wpfm-form-wrapper .wpfm-form-group .food-manager-uploaded-files .food-manager-uploaded-file .food-manager-uploaded-file-preview .food-manager-remove-uploaded-file:hover::before,.wpfm-main .wpfm-theme-url a:hover,.wpfm-main .wpfm-theme-url:hover,.wpfm-tabs-wrapper .wpfm-tabs-wrap .wpfm-tab-link a,.wpfm-tabs-wrapper .wpfm-tabs-wrap .wpfm-tab-link a:hover,.wpfm-theme-text-button:hover,.wpfm-theme-url a:hover,.wpfm-theme-url:hover,table.wpfm-responsive-table-wrapper tbody tr td a:hover{color:var(--wpfm-dark-color)}.wpfm-form-wrapper .showing_applied_filters{background:var(--wpfm-gray-bg-color);font-size:15px;border-radius:4px;padding:5px 10px;margin:10px 0;display:inline-block;width:100%}.wpfm-form-wrapper .showing_applied_filters span{margin:2px;display:inline-block}.wpfm-form-wrapper .showing_applied_filters a{float:right;margin:2px}.wpfm-main fieldset{border:none}.wpfm-theme-button,a.wpfm-theme-button,button.wpfm-theme-button,input.wpfm-theme-button{background:var(--wpfm-primary-color);color:var(--wpfm-white-color);border:none;padding:10px 20px;width:auto;text-transform:uppercase;font-weight:600;border-radius:4px;font-size:16px;line-height:1.42;margin:5px 0;letter-spacing:0;display:inline-block;cursor:pointer;transition:.2s;vertical-align:middle}.wpfm-theme-button span,.wpfm-theme-button:focus span,.wpfm-theme-button:hover span,a.wpfm-theme-button span,a.wpfm-theme-button:focus span,a.wpfm-theme-button:hover span,button.wpfm-theme-button span,button.wpfm-theme-button:focus span,button.wpfm-theme-button:hover span,input.wpfm-theme-button span,input.wpfm-theme-button:focus span,input.wpfm-theme-button:hover span{color:var(--wpfm-white-color)}.wpfm-main .wpfm-theme-url,.wpfm-main .wpfm-theme-url a,.wpfm-theme-text-button,.wpfm-theme-url,.wpfm-theme-url a,a.button.wpfm-add-row{color:var(--wpfm-primary-color)}.wpfm-theme-button:focus,.wpfm-theme-button:hover,a.wpfm-theme-button:focus,a.wpfm-theme-button:hover,button.wpfm-theme-button:focus,button.wpfm-theme-button:hover,input.wpfm-theme-button:focus,input.wpfm-theme-button:hover{background:var(--wpfm-dark-color);border:none;outline:0}.wpfm-theme-button i{line-height:normal}.wpfm-theme-button.wpfm-theme-button-icon-left{position:relative;padding-left:40px}.wpfm-theme-button.wpfm-theme-button-icon-left i{position:absolute;left:15px;top:50%;transform:translate(0,-50%)}.wpfm-theme-button.wpfm-theme-button-icon-right{position:relative;padding-right:40px}.wpfm-theme-button.wpfm-theme-button-icon-right i{position:absolute;right:15px;top:50%;transform:translate(0,-50%)}.wpfm-theme-button.wpfm-active-button{background:var(--wpfm-gray-color)}.wpfm-dashboard-main-header .wpfm-foods-filter .wpfm-form-group button:hover,.wpfm-theme-button.wpfm-active-button:hover{background:var(--wpfm-dark-color)}.wpfm-tabs-wrapper{width:100%;margin-bottom:20px;border:2px solid var(--wpfm-gray-border-color);border-radius:5px}.wpfm-tabs-wrapper .wpfm-tabs-wrap{display:flex;background:var(--wpfm-gray-bg-color);margin:0;padding:0}.wpfm-tabs-wrapper .wpfm-tabs-wrap .wpfm-tab-link{padding:15px 25px;list-style:none;cursor:pointer;font-size:17px;font-weight:600;background:var(--wpfm-gray-bg-color);transition:.2s;color:var(--wpfm-dark-color)}.wpfm-tabs-wrapper .wpfm-tabs-wrap .wpfm-tab-link.active{background:var(--wpfm-white-color);color:var(--wpfm-dark-color);cursor:default}.wpfm-tabs-wrapper .wpfm-tabs-wrap .wpfm-tab-link.active a{cursor:default}.wpfm-tabs-wrapper .wpfm-tab-content{padding:25px;display:none;margin:0}.wpfm-tabs-wrapper .wpfm-tab-content .wpfm-tab-pane.active,.wpfm-tabs-wrapper .wpfm-tab-content.current{display:block}.wpfm-tabs-wrapper .wpfm-tab-content .wpfm-tab-pane{display:none;list-style:none}.wpfm-single-food-page .wpfm-single-food-wrapper,.wpfm-tabs-wrapper .wpfm-food-listings .wpfm-food-layout-wrapper{border:1px solid var(--wpfm-gray-border-color)}.wpfm-with-bg-image{background-size:cover;background-position:center;min-height:250px;display:flex;justify-content:center;align-items:center;width:100%;max-width:100%;position:relative;border-radius:4px;padding:15px}.wpfm-food-listings-header .wpfm-food-layout-action-wrapper .wpfm-food-layout-action .wpfm-food-layout-icon:hover,.wpfm-view-more{background:var(--wpfm-gray-border-color)}.wpfm-with-bg-image .wpfm-heading-text{color:var(--wpfm-white-color);margin:0;position:relative;z-index:1}.wpfm-with-bg-image::before{border-radius:4px;background:var(--wpfm-dark-color);position:absolute;content:'';left:0;right:0;top:0;bottom:0;opacity:.5}.wpfm-with-bg-image::after{content:'';background:var(--wpfm-primary-color);position:absolute;bottom:0;left:0;right:0;height:5px}.wpfm-view-more{position:absolute;bottom:-12px;top:auto;left:21px;right:auto;padding:5px 15px 4px;border-radius:3px;font-size:12px;font-weight:600;cursor:pointer}.wpfm-additional-main-row .wpfm-additional-info-block-details-content-items p{word-break:break-word;font-size:14px;margin-bottom:0}.wpfm-additional-main-row .wpfm-additional-info-block-details-content-items{padding:10px 0;border-top:1px solid var(--wpfm-gray-border-color)}.wpfm-additional-main-row [class^=wpfm-col]{width:100%;flex:0 0 100%;max-width:100%}.wpfm-dashboard-main-header .wpfm-foods-filter{background:var(--wpfm-gray-bg-color);padding:10px 15px;margin:0;border-radius:3px;display:flex;position:relative}.wpfm-dashboard-main-header .wpfm-foods-filter::before{content:'';background:var(--wpfm-gray-bg-color);height:20px;width:20px;position:absolute;right:8px;top:-7px;transform:rotate(45deg)}.wpfm-dashboard-main-header .wpfm-foods-filter .wpfm-foods-filter-block{width:100%;margin-right:10px}.wpfm-dashboard-main-header .wpfm-foods-filter .wpfm-foods-filter-block.wpfm-foods-filter-submit{width:auto}.wpfm-dashboard-main-header .wpfm-foods-filter .wpfm-form-group{margin:5px 0}.wpfm-dashboard-main-header .wpfm-foods-filter .wpfm-form-group button{width:100%;height:45px;margin:0;white-space:nowrap}.wpfm-dashboard-main-title.wpfm-dashboard-main-filter a.wpfm-dashboard-header-btn i[class^=wpfm-icon-]{color:var(--wpfm-primary-color);transition:.2s}.wpfm-dashboard-main-title.wpfm-dashboard-main-filter a.wpfm-dashboard-header-btn{display:inline-flex;border:1px solid var(--wpfm-gray-border-color);padding:10px;border-radius:3px;align-items:center;font-size:16px;line-height:25px}.wpfm-dashboard-main-title.wpfm-dashboard-main-filter .wpfm-d-inline-block.wpfm-dashboard-i-block-btn{margin:0 0 0 auto}.wpfm-dashboard-main-title.wpfm-dashboard-main-filter h3.wpfm-theme-text{margin:0;padding:0;font-weight:700}.wpfm-dashboard-main-title.wpfm-dashboard-main-filter{display:flex;flex-wrap:nowrap;justify-content:space-between;margin-bottom:15px;align-items:center}.wpfm-form-wrapper .chosen-container{width:100%!important;outline:0;margin:0;border-radius:4px;border:1px solid var(--wpfm-gray-border-color);background-color:var(--wpfm-white-color);transition:.2s}.wpfm-form-wrapper .chosen-container:hover{border-color:var(--wpfm-gray-border-color);background-color:var(--wpfm-white-color);transition:.2s}.wpfm-form-wrapper .chosen-container:focus{border-color:var(--wpfm-primary-color);background-color:var(--wpfm-white-color)}.wpfm-form-wrapper .chosen-container.chosen-container-multi .chosen-choices{border:0;box-shadow:none;background:0 0}.wpfm-form-wrapper .chosen-container.chosen-container-multi .chosen-choices li.search-choice{margin:11px 0 11px 10px;border-color:var(--wpfm-gray-border-color);background:var(--wpfm-gray-bg-color);padding:5px 20px 5px 5px;font-size:14px;box-shadow:none}.wpfm-form-wrapper .chosen-container.chosen-container-multi .chosen-choices li.search-choice:first-of-type{margin-left:0}.wpfm-form-wrapper .chosen-container.chosen-container-multi .chosen-choices li.search-field input[type=text]{font-size:16px;font-family:inherit;height:41px;font-weight:400;padding:0;margin:0}.wpfm-form-wrapper .chosen-container-multi .chosen-choices li.search-choice .search-choice-close{top:6px}.wpfm-form-wrapper .chosen-container .chosen-choices,.wpfm-form-wrapper .chosen-container .chosen-single{padding:0 15px;font-size:16px;line-height:42px;font-weight:400;color:var(--wpfm-dark-color);background:0 0;height:auto;border:none;box-shadow:unset;border-radius:4px}.wpfm-form-wrapper .chosen-container-single .chosen-default,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-additional-info-block-details .wpfm-additional-info-block-textarea p{color:var(--wpfm-gray-color)}.wpfm-form-wrapper .chosen-container .chosen-single div b{background-position:0 12px}.wpfm-form-wrapper .chosen-container .chosen-drop{top:calc(100% - 2px);border-color:var(--wpfm-gray-border-color);border-top:0;border-radius:0 0 4px 4px;margin:0 0 0 -1px;box-shadow:7px 5px 15px rgb(0 0 0 / 10%);width:calc(100% + 2px);transition:border-color .2s}.wpfm-form-wrapper .chosen-container .chosen-drop:hover{border-color:var(--wpfm-gray-border-color)}.selection-preview ul li,.wpfm-food-listing-list-view .wpfm-food-box-col:last-of-type .wpfm-food-layout-wrapper{border-bottom:1px solid var(--wpfm-gray-border-color)}.wpfm-form-wrapper .chosen-container .chosen-search input[type=text]{height:auto;line-height:20px;font-size:16px;padding:1px 4px;min-height:unset}.wpfm-form-wrapper .chosen-container .chosen-drop .chosen-results li{font-size:14px}.wpfm-form-wrapper .chosen-container .chosen-drop .chosen-results li.highlighted{background:var(--wpfm-primary-color)}.wpfm-options-box fieldset.wpfm-form-group:last-child table.widefat{font-size:14px;margin:0;border:1px solid var(--wpfm-gray-border-color)}.wpfm-options-box fieldset.wpfm-form-group:last-child table.widefat td,.wpfm-options-box fieldset.wpfm-form-group:last-child table.widefat th{border:1px solid var(--wpfm-gray-border-color);border-radius:3px}.wpfm-food-listing-box-view .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details,.wpfm-options-box td,.wpfm-options-box th{padding:10px}.wpfm-options-box td input[type=checkbox]{height:16px!important;border:1px solid var(--wpfm-gray-border-color)}.wpfm-form-wrapper .wpfm-options-box .wpfm-form-group table td input,.wpfm-form-wrapper .wpfm-options-box .wpfm-form-group table td select{height:34px;line-height:34px;font-size:14px}.wpfm-input-field{background:var(--wpfm-white-color);padding:15px;position:relative;border-radius:4px;border:2px solid var(--wpfm-gray-border-color);margin:0;width:100%;display:inline-block;vertical-align:top;box-sizing:border-box}.wpfm-form-wrapper .wpfm-actions{margin:30px 0}.wpfm-form-wrapper .wpfm-actions button.wpfm-add-button{background-color:var(--wpfm-gray-bg-color);color:var(--wpfm-dark-color);padding:6px 12px;border:0;border-radius:4px;transition:.02s;cursor:pointer;font-weight:500}.wpfm-form-wrapper .wpfm-actions button.wpfm-add-button:hover,a.button.wpfm-add-row:hover{background-color:var(--wpfm-primary-color);color:var(--wpfm-white-color)}.wpfm-form-wrapper .postbox span.attribute_key input[type=text]{padding:2px}.wpfm-form-wrapper .wpfm-metabox{background:var(--wpfm-white-color);margin:15px 0 0!important;border-bottom:2px solid var(--wpfm-gray-border-color);border-radius:4px}.wpfm-form-wrapper .wpfm-content{padding:1em}.food_listing_preview_title h2,.wpfm-form-wrapper .wpfm-content .wpfm-form-group:last-of-type,.wpfm-input-description>p{margin-bottom:0}.wpfm-form-wrapper .wpfm-content .field label{margin-right:10px}.wpfm-form-wrapper .postbox{border:2px solid var(--wpfm-gray-bg-color)}.wpfm-metabox h3{margin:0!important;padding:.75em .75em .75em 1em!important;font-size:1em!important;overflow:hidden;zoom:1;cursor:pointer}.food_listing_preview_action_button .food-manager-button-submit-listing,.wpfm-metabox h3 a.wpfm-delete-btn,.wpfm-metabox h3 button{float:right}.wpfm-metabox h3 a.wpfm-delete-btn::before{font-size:23px}.wpfm-metabox h3 a.wpfm-delete-btn{font-size:0;color:red;font-weight:400;line-height:26px;text-decoration:none;position:relative}.wpfm-metabox .wpfm-togglediv{width:27px;float:right}.wpfm-metabox.closed .wpfm-togglediv::before{content:"\f140"!important}.wpfm_error_tip{color:var(--wpfm-white-color);font-size:.8em;background:var(--wpfm-dark-color);text-align:center;border-radius:3px;padding:.618em 1em;box-shadow:0 1px 3px rgba(0,0,0,.2);max-width:20em;line-height:1.8em;position:absolute;white-space:normal;background:#d82223;margin:1.5em 1px 0 -1em;z-index:9999999}.wpfm_error_tip::after{content:"";display:block;border:8px solid #d82223;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent;position:absolute;top:-3px;left:50%;margin:-1em 0 0 -3px}.wpfm-metabox .wpfm-togglediv::before{content:"\f142"!important;cursor:pointer;display:inline-block;font:400 20px/1 Dashicons;line-height:.5!important;padding:8px 10px;position:relative;right:12px;top:0}.wpfm-metabox h3 strong{line-height:26px;font-weight:700}.selection-preview ul li:last-of-type,textarea#food_description{border:0}.wpfm-field-switch input{opacity:0;width:0;height:0}.wpfm-field-switch-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--wpfm-gray-border-color);-webkit-transition:.4s;-o-transition:.4s;transition:.4s}label.wpfm-field-switch{position:relative;display:inline-block;width:50px;height:24px;float:none;margin:0}.wpfm-field-switch-slider:before{position:absolute;content:"";height:16px;width:16px;left:4px;bottom:4px;background-color:var(--wpfm-white-color);-webkit-transition:.4s;-o-transition:.4s;transition:.4s}input:checked+.wpfm-field-switch-slider:before{-webkit-transform:translateX(26px);-ms-transform:translateX(26px);transform:translateX(26px)}.wpfm-field-switch-slider.round:before{border-radius:50%}.wpfm-field-switch-slider.round{border-radius:34px}input:checked+.wpfm-field-switch-slider{background-color:var(--wpfm-primary-color)}.wpfm-options-box fieldset.wpfm-form-group table.widefat a.option-delete-btn{font-size:0}.wpfm-options-box fieldset.wpfm-form-group:last-child table.widefat input.opt_default{text-align:center;width:100%;height:14px}a.option-delete-btn::before{font-size:24px}span.wpfm-option-sort:hover{cursor:move}a.button.wpfm-add-row{cursor:pointer;background:var(--wpfm-white-color);padding:3px 12px;border-radius:4px;float:right;font-size:14px;border:1px solid var(--wpfm-primary-color);font-weight:500}.wpfm-inner-field-content{display:flex;flex-flow:column}.wpfm-input-singular{display:flex;align-items:center;column-gap:8px;word-break:break-word}.wpfm-img-single img{width:65%;border-radius:10px;height:auto;object-fit:cover}.selection-preview ul{list-style:none;margin:10px 0 0;padding:0;background-color:var(--wpfm-gray-bg-color);border-radius:4px}.selection-preview ul li{padding:15px 0}.selection-preview ul li label{margin:0 15px 5px;display:block;line-height:normal}.selection-preview ul li .term-item-flex{display:flex;padding:0 7.5px}.selection-preview ul li .term-item-flex input,.selection-preview ul li .term-item-flex select{margin:0 7.5px!important}.wpfm-form-wrapper .wpfm-form-group .selection-preview{margin-top:5px}.mce-btn button:hover{background:0 0;color:transparent}.mce-btn.mce-active button,.mce-btn.mce-active i,.mce-btn.mce-active:hover button,.mce-btn.mce-active:hover i{color:var(--wpfm-dark-color)!important}.wpfm-food-listings .parent-organic-tag.non-vegetarian:hover::before{content:'Non Veg'}.wpfm-food-listings-header .wpfm-food-listing-header-title .wpfm-heading-text{font-size:25px;line-height:33px;font-weight:500;margin:0}.wpfm-food-listings-header .wpfm-food-layout-action-wrapper{display:flex;width:100%}.wpfm-food-listings-header .wpfm-food-layout-action-wrapper .wpfm-food-layout-action{display:inline-flex;margin-left:auto}.wpfm-food-listings-header .wpfm-food-layout-action-wrapper .wpfm-food-layout-action .wpfm-food-layout-icon{height:30px;width:30px;background:var(--wpfm-gray-bg-color);color:var(--wpfm-gray-color);margin-left:5px;border-radius:4px;cursor:pointer;font-size:16px;transition:.2s;display:flex;align-items:center;justify-content:center}.wpfm-food-listings-header .wpfm-food-layout-action-wrapper .wpfm-food-layout-action .wpfm-food-layout-icon.wpfm-active-layout{background:var(--wpfm-primary-color);color:var(--wpfm-white-color);cursor:default}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-banner{width:100%;background-color:var(--wpfm-gray-bg-color)}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation,.wpfm-food-single-image img{width:100%}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-type-flex-container{display:flex;align-items:center}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-type{display:inline-block}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-type .wpfm-food-type-text{background:var(--wpfm-gray-bg-color);color:var(--wpfm-dark-color);padding:5px 7px;display:inline-block;line-height:15px;font-weight:400;font-size:14px;border-radius:2px}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-price,.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-title,.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-type{margin:5px;min-height:23px}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-title,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-details .wpfm-food-title{margin-bottom:10px}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-title .wpfm-heading-text{font-size:18px;line-height:25px;font-weight:500;color:var(--wpfm-dark-color);margin:0;word-break:break-word}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-price{font-weight:700;display:flex;align-items:center;color:var(--wpfm-primary-color);font-size:18px}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-price del{margin-right:5px;color:var(--wpfm-gray-color);font-weight:500;font-size:14px}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-price ins{color:var(--wpfm-primary-color);font-size:18px}.wpfm-food-listings .wpfm-food-layout-wrapper.food_featured,.wpfm-food-listings .wpfm-food-layout-wrapper.food_featured:hover{background:#ffffe4}.wpfm-food-listings .wpfm-food-layout-wrapper.food_cancelled,.wpfm-food-listings .wpfm-food-layout-wrapper.food_cancelled:hover{background:#ffe5e5}.wpfm-food-listings .no_food_listings_found{text-align:center;color:#721c24;display:inline-block;width:100%}.food_listings a.load_more_foods{margin:0 auto;text-align:center;border-radius:5px;display:table;background:var(--wpfm-gray-bg-color);color:var(--wpfm-gray-color);text-transform:uppercase;padding:10px 25px;font-size:15px;letter-spacing:.5px;transition:.2s}.food_listings a.load_more_foods:hover{background:var(--wpfm-gray-color);color:var(--wpfm-white-color)}.wpfm-food-listings .food-stock-status{margin:5px}.wpfm-food-listing-box-view .wpfm-food-box-col,.wpfm-food-listing-list-view{padding-bottom:30px}.wpfm-food-listing-box-view .wpfm-food-layout-wrapper{border:1px solid var(--wpfm-gray-border-color);width:100%;height:100%;border-radius:4px;transition:.2s;overflow:hidden}.wpfm-food-listing-box-view .wpfm-food-layout-wrapper:hover{box-shadow:1px 1px 10px rgba(0,0,0,.12)}.wpfm-food-listing-box-view .wpfm-food-layout-wrapper .wpfm-food-banner .wpfm-food-banner-img{height:230px;width:100%;background-position:center;background-size:cover}.wpfm-food-listing-box-view .wpfm-food-layout-wrapper .wpfm-food-banner .wpfm-food-register-label{display:block;position:absolute;top:15px;right:15px}.wpfm-food-listing-box-view .no_food_listings_found{padding:15px;text-align:center;color:#721c24!important;display:inline-block;width:100%;margin-left:15px;margin-right:15px}.wpfm-food-listing-list-view .wpfm-food-box-col{max-width:100%;width:100%;margin:0;padding:0}.wpfm-food-listing-list-view .wpfm-food-layout-wrapper .wpfm-food-infomation{padding-left:10px}.wpfm-food-listing-list-view .wpfm-food-layout-wrapper .wpfm-food-banner .wpfm-food-banner-img{height:90px;width:90px;background-size:cover;background-position:center;border-radius:4px}.wpfm-food-listing-list-view .wpfm-food-layout-wrapper .food_manager{margin:0;display:inline-flex;width:100%;padding:23px 17px;border-left:3px solid var(--wpfm-gray-border-color);transition:border .2s}.wpfm-food-listing-list-view .wpfm-food-layout-wrapper{border-top:1px solid var(--wpfm-gray-border-color);border-right:1px solid var(--wpfm-gray-border-color)}.wpfm-food-listing-list-view .wpfm-food-layout-wrapper:hover .food_manager{border-width:7px;border-color:var(--wpfm-primary-color);box-shadow:1px 1px 10px rgba(0,0,0,.12)}.wpfm-food-listing-list-view .wpfm-food-layout-wrapper .food_manager>.wpfm-food-action-url,table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action{display:flex}.wpfm-food-listing-list-view .wpfm-food-layout-wrapper .food_manager>.wpfm-food-action-url .wpfm-food-banner{width:90px;height:90px;background-color:transparent}.wpfm-input-field-common{position:relative;padding:20px;border-radius:4px;background:var(--wpfm-gray-bg-color);margin-bottom:30px}.wpfm-input-field-common>label{display:block;position:relative;overflow:hidden;padding-bottom:5px}.wpfm-input-field-common.with-more{margin-bottom:30px;padding-bottom:35px}.wpfm-input-field-common select{padding:5px 15px;border-color:#d3d3d3;border-radius:4px;width:100%;box-sizing:border-box}.wpfm-single-food-page .wpfm-food-title{display:flex;align-items:center;column-gap:15px}.wpfm-single-food-page .wpfm-food-price{margin:10px 0;font-size:22px;font-weight:500;display:flex;align-items:center}.wpfm-single-food-page .wpfm-food-price del{font-size:18px;color:var(--wpfm-gray-color);margin-right:10px}.wpfm-single-food-page .wpfm-food-price ins{color:var(--wpfm-primary-color);padding:0 5px}.wpfm-single-food-page .food-manager-info{border:1px solid var(--wpfm-gray-border-color);color:var(--wpfm-dark-color);padding:10px 15px 10px 40px;position:relative;display:inline-block;width:100%;margin-bottom:20px;border-radius:5px;background:var(--wpfm-gray-bg-color)}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider ul.slick-dots li.slick-active button,.wpfm-tooltip .wpfm-tooltiptext{background:var(--wpfm-white-color)}.wpfm-single-food-page .food-manager-info i{font-size:19px;position:absolute;left:13px;margin-top:3px;line-height:20px}.wpfm-single-food-page .food-manager-info.food-manager-canceled-info{border-color:#b12828;color:#b12828;background:#fff1f1}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top,table.wpfm-responsive-table-wrapper thead{background:var(--wpfm-gray-bg-color)}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-single-image-wrapper .wpfm-food-single-image img,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider .wpfm-slider-items img{width:100%;height:auto;display:block}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider{position:relative;margin-bottom:0;height:auto}.wpfm-img-multiple.slick-slide img{object-fit:cover;height:250px;width:100%;border-radius:10px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider ul.slick-dots{position:absolute;left:10px;bottom:10px;margin:0;padding:0}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider ul.slick-dots li{height:10px;width:10px;position:relative;margin:4px;font-size:0;line-height:normal;float:left;display:inline-block}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider ul.slick-dots li button{height:10px;width:10px;display:inline-block;border-radius:100%;background:rgba(255,255,255,.5);position:absolute;left:0;top:0;border:none;padding:0;font-size:0}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .slick-arrow{position:absolute;right:0;bottom:0;height:40px;width:40px;font-size:0;line-height:normal;overflow:hidden;background:rgba(0,0,0,.5);padding:0;text-align:center}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .slick-arrow.slick-prev{left:0;top:50%;transform:translate(0,-50%);border:none;z-index:1;cursor:pointer}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .slick-arrow.slick-prev::before{content:"\ea40";font-family:wp-food-manager;font-size:20px;color:var(--wpfm-white-color)}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .slick-arrow.slick-next{right:0;top:50%;transform:translate(0,-50%);border:none;z-index:1;cursor:pointer}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .slick-arrow.slick-next::before{content:"\ea3c";font-family:wp-food-manager;font-size:20px;color:var(--wpfm-white-color)}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-short-info{padding-top:30px;padding-bottom:30px;position:relative}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-details{display:inline-block;width:calc(100% - 30px);margin-bottom:50px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-details .wpfm-food-title .wpfm-heading-text{margin:0;padding:0;font-size:26px;line-height:30px;color:var(--wpfm-dark-color);font-weight:500;letter-spacing:.5px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content::after{content:"";position:absolute;right:15px;top:0;height:100%;width:1px;background:var(--wpfm-gray-border-color)}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-additional-info-block{background:var(--wpfm-gray-border-color);border-top:1px solid var(--wpfm-gray-border-color);border-bottom:1px solid var(--wpfm-gray-border-color);padding:15px 30px;margin:0}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-additional-info-block .wpfm-heading-text{font-size:20px;line-height:1.42}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-additional-info-block-details{padding:30px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-additional-info-block-details .wpfm-additional-info-block-details-content-items{padding:10px 0;border-bottom:1px solid var(--wpfm-gray-border-color)}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-additional-info-block-details p{word-break:break-word;font-size:14px;margin-bottom:0;padding-left:5px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-single-food-body-content{padding:10px 30px 30px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-single-food-body-content .wpfm-heading-text{margin:0 0 15px}.wpfm-food-ingredients,.wpfm-food-nutritions{width:100%;word-break:break-all}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar{padding:30px 30px 30px 0}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-single-food-short-info{padding:30px 30px 0}.wpfm-single-food-page .wpfm-heading-text{font-size:24px;font-weight:700;color:var(--wpfm-dark-color);padding:0;margin:0;line-height:1.42;word-break:break-word}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-heading-text{font-size:18px;color:var(--wpfm-dark-color);padding:0;margin:0 0 5px}.single_food_listing .wpfm-food-details .wpfm-tooltip .wpfm-tooltiptext{min-width:180px;font-size:14px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-single-food-sidebar-info a{color:var(--wpfm-dark-color);text-decoration:unset}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-single-food-sidebar-info a:hover{color:var(--wpfm-dark-color);text-decoration:underline}.wpfm-single-food-page .wpfm-single-food-sidebar-info{margin-bottom:35px}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-theme-button,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar a.wpfm-theme-button,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar button.wpfm-theme-button,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar input.wpfm-theme-button{width:100%;font-size:16px;text-align:center;padding:10px;color:var(--wpfm-white-color)}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-theme-button:hover,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar a.wpfm-theme-button:hover,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar button.wpfm-theme-button:hover,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar input.wpfm-theme-button:hover{color:var(--wpfm-white-color);text-decoration:none}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-icon-text-button{color:var(--wpfm-primary-color);text-decoration:unset;width:100%;line-height:25px;font-weight:500}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-icon-text-button i{float:left;line-height:unset;margin-right:5px}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-icon-text-button:hover{text-decoration:none;color:var(--wpfm-dark-color)}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-icon-text-button.remove-bookmark i{float:right;margin:0;font-size:12px}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-register-food-form form{background:var(--wpfm-gray-bg-color);padding:15px;margin:10px 0;border-radius:5px}.wpfm-single-food-page .wpfm-share-this-food{margin:0;padding:0;display:inline-block;width:100%}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists{display:inline-block;margin:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon{height:35px;width:35px;position:relative;margin:4px 4px 4px 0;float:left;font-size:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon a{height:35px;width:35px;display:inline-block;background:var(--wpfm-gray-border-color);border-radius:100%;opacity:1;transition:.2s}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon a:hover{opacity:.8}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-weblink a{background:#999}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-weblink a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-web-link-icon.svg);-webkit-mask-image:url(../images/wpfm-web-link-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-whatsapp a{background:#3fa21a}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-whatsapp a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-whatsapp-icon.svg);-webkit-mask-image:url(../images/wpfm-whatsapp-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-youtube a{background:#ea1717}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-youtube a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-youtube-icon.svg);-webkit-mask-image:url(../images/wpfm-youtube-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-facebook a{background:#38529a}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-facebook a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-facebook-icon.svg);-webkit-mask-image:url(../images/wpfm-facebook-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-twitter a{background:#4da6d7}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-twitter a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-twitter-icon.svg);-webkit-mask-image:url(../images/wpfm-twitter-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-linkedin a{background:#3671ae}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-linkedin a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-linkedin-icon.svg);-webkit-mask-image:url(../images/wpfm-linkedin-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-xing a{background:#265c60}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-xing a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-xing-icon.svg);-webkit-mask-image:url(../images/wpfm-xing-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-instagram a{background-image:linear-gradient(to right top,#e52705,#ea0037,#e5005a,#d5007b,#bb1497)}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-instagram a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-instagram-icon.svg);-webkit-mask-image:url(../images/wpfm-instagram-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-pinterest a{background:#b81d1a}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-pinterest a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-pinterest-icon.svg);-webkit-mask-image:url(../images/wpfm-pinterest-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.food_listing_preview_title{background:var(--wpfm-gray-bg-color);border-radius:4px 4px 0 0;margin-top:30px;padding:15px 20px;text-align:center;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.food_listing_preview_title h3{padding:0;margin:0;color:var(--wpfm-white-color)}.food_listing_preview{padding:20px;border-radius:0 0 4px 4px}form#food_preview{box-shadow:0 10px 20px rgba(0,0,0,.1);border-radius:4px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-food-category .food-category,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-food-ingredients .food-ingredients,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-food-nutritions .food-nutritions,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-food-tag .food-tag,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-food-type .food-type,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-food-units .food-units{background:var(--wpfm-gray-bg-color);padding:5px 10px;border-radius:5px;font-size:15px;line-height:20px;display:inline-block;margin:5px 5px 0 0}.food_categories span.food-category{padding:5px 7px;background:var(--wpfm-gray-bg-color);margin:0 3px 6px;border-radius:4px;font-size:14px;font-weight:400;display:inline-block;vertical-align:top;color:var(--wpfm-dark-color)}.wpfm-food-details .food-details-row{display:flex;align-items:center;justify-content:space-between}.wpfm-tooltip{position:relative;display:inline-block;border-bottom:1px dotted var(--wpfm-dark-color)}.wpfm-tooltip .wpfm-tooltiptext{visibility:hidden;width:auto;box-shadow:0 3px 10px rgba(0,0,0,.25);color:var(--wpfm-dark-color);text-align:center;padding:10px;border-radius:6px;position:absolute;z-index:1;opacity:0;transition:opacity 1s;cursor:default}.wpfm-tooltip.wpfm-tooltip-left .wpfm-tooltiptext{top:-5px;right:105%}.wpfm-tooltip.wpfm-tooltip-right .wpfm-tooltiptext{top:-5px;left:105%}.wpfm-tooltip.wpfm-tooltip-top .wpfm-tooltiptext{bottom:100%;left:50%;transform:translate(-50%,0)}.wpfm-tooltip.wpfm-tooltip-bottom .wpfm-tooltiptext{top:100%;left:50%;transform:translate(-50%,0)}.wpfm-tooltip:hover .wpfm-tooltiptext{visibility:visible;opacity:1}table.wpfm-responsive-table-wrapper{font-size:14px;font-weight:500;color:var(--wpfm-gray-color);border:1px solid var(--wpfm-gray-border-color)}table.wpfm-responsive-table-wrapper thead th{border-top:none}table.wpfm-responsive-table-wrapper thead th.wpfm-heading-text{border-bottom:1px solid var(--wpfm-gray-border-color);padding:15px;font-weight:500;color:var(--wpfm-dark-color);text-align:left;text-transform:none;border:none;word-break:inherit}table.wpfm-responsive-table-wrapper thead th:first-child{padding-left:15px}table.wpfm-responsive-table-wrapper tbody tr{background:var(--wpfm-white-color);border-top:1px solid var(--wpfm-gray-bg-color)}table.wpfm-responsive-table-wrapper tbody tr:nth-child(2n) .food_categories span.food-category{background:#f0f0f0}table.wpfm-responsive-table-wrapper tbody tr td{padding:10px;border:none}table.wpfm-responsive-table-wrapper tbody tr td a{color:var(--wpfm-primary-color);word-break:break-word}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn{display:inline-block;margin:2px;height:30px;width:30px;position:relative}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a{height:30px;width:30px;display:inline-block;text-align:center;line-height:normal;font-size:0;position:absolute;left:0;top:0}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a::before{content:"";position:absolute;left:0;top:0;height:30px;width:30px;font-family:wp-food-manager;text-align:center;line-height:30px;font-size:16px}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a.food-dashboard-action-edit::before{content:"\e906"}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a.food-dashboard-action-relist::before{content:"\ea2e"}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a.food-dashboard-action-mark_not_cancelled::before{content:"\ea52"}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a.food-dashboard-action-mark_cancelled::before{content:"\ea53"}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a.food-dashboard-action-duplicate::before{content:"\e92c"}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a.food-dashboard-action-delete::before{content:"\e9ad"}.wpfm-responsive-table-block{overflow:auto;border:1px solid var(--wpfm-gray-bg-color);margin-bottom:25px}.wpfm-responsive-table-block table.wpfm-responsive-table-wrapper{border:none;margin:0}#food-manager-food-dashboard table td.food_title{display:flex;column-gap:15px;align-items:center;width:270px}.wpfm-single-food-menu-category-banner{position:relative;width:100%;overflow:hidden;border-radius:4px;line-height:0;margin-bottom:10px}.wpfm-single-food-menu-category-banner img{height:260px;width:100%;object-fit:cover;border-radius:4px}.wpfm-single-food-menu-category-banner .wpfm-single-food-menu-category-title{position:absolute;left:0;bottom:0;margin:auto 0;text-align:center;padding:15px;background:rgb(0 0 0 / 50%);font-size:20px;color:var(--wpfm-white-color);width:100%;line-height:normal;word-break:break-all}.parent-organic-tag:hover::before,span.wpfm-front-radio-icon:hover:before{content:attr(data-icon-type);position:absolute;right:calc(100% + 5px);background:var(--wpfm-dark-color);color:var(--wpfm-white-color);font-size:11px;border-radius:4px;top:0;padding:3px 6px;z-index:9;width:auto;min-width:70px;text-align:center}.parent-organic-tag:hover::after,span.wpfm-front-radio-icon:hover:after{content:'';background:var(--wpfm-dark-color);height:9px;width:9px;position:absolute;transform:rotate(45deg);top:6px;right:100%}span.wpfm-front-radio-icon{display:inline-block;vertical-align:top;position:relative;cursor:pointer}span.wpfm-front-radio-icon:hover:before{content:attr(data-food-menu);left:calc(100% + 10px)}span.wpfm-front-radio-icon:hover:after{left:calc(100% - -6px);top:calc(50% - 5px)}span.fm-divider{position:absolute;left:0;right:0;text-align:center}.fm-food-menu-container{display:flex;flex-wrap:wrap;margin:0 -10px}.fm-food-menu-container .food-list-box{background:var(--wpfm-gray-bg-color);color:var(--wpfm-dark-color);vertical-align:top;margin:10px;padding:15px;font-size:14px;border-radius:4px;position:relative;transition:.2s;width:calc(50% - 20px)}.fm-food-menu-container .food-list-box:hover{box-shadow:1px 1px 10px rgba(0,0,0,.12);background-color:var(--wpfm-white-color);color:var(--wpfm-dark-color)}.fm-food-menu-container .food-list-box .fm-food-menu-title strong{display:block;font-size:18px}.fm-food-menu-container .food-list-box .fm-food-menu-pricing{white-space:nowrap;margin-bottom:10px;margin-top:5px;display:flex;align-items:center}.fm-food-menu-container .food-list-box .fm-food-menu-pricing ins{display:block;color:var(--wpfm-primary-color);font-size:18px;margin-left:5px}.fm-food-menu-container .food-list-box .fm-food-menu-pricing del{color:var(--wpfm-gray-color);font-weight:500;font-size:14px}.fm-food-menu-desc,.fm-food-menu-title strong{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.wpfm-single-food-menu-page .wpfm-single-food-image img{max-width:100%;width:100%}.wpfm-single-food-page .wpfm-single-food-body-content .wpfm-food-ingredients .wpfm-heading-text,.wpfm-single-food-page .wpfm-single-food-body-content .wpfm-food-nutritions .wpfm-heading-text{font-size:18px;margin-bottom:10px!important}.wpfm-single-food-page .wpfm-single-food-body-content .wpfm-food-ingredients span.food-ingredients,.wpfm-single-food-page .wpfm-single-food-body-content .wpfm-food-nutritions span.food-nutritions{background:var(--wpfm-gray-bg-color);padding:5px 10px;border-radius:5px;font-size:15px;line-height:20px;display:inline-block;margin:0 5px 5px 0}.wpfm-additional-file-slider .wpfm-icon{border:2px solid var(--wpfm-gray-border-color);padding:10px;border-radius:4px;margin:5px 1px}.wpfm-front-radio-icon span.wpfm-menu{margin-left:10px;font-size:20px;border-radius:4px;border:1px solid var(--wpfm-dark-color);width:36px;height:36px;text-align:center;line-height:34px;display:inline-block}.wpfm-input-description{color:var(--wpfm-gray-color);font-size:13px;display:block;overflow:hidden;position:relative;top:-3px;padding-bottom:10px}.food-stock-status mark.fm_outofstock{padding:3px 5px 2px;font-size:12px;display:inline-block;vertical-align:top;background:#f74747;color:var(--wpfm-white-color);border-radius:2px}small.wpfm-food-status-pending-approval{font-weight:400;display:inline-block;margin:3px 0 3px 5px;padding:3px 8px;font-size:13px;border-radius:2px;background:#fff4d7;color:#6b4e00}mark.fm_instock{background:0 0;color:#7ad03a}.parent-organic-tag{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 20px;margin:5px}ul.food-manager-term-checklist{list-style:none;padding:10px 15px;margin-left:0;border:2px solid var(--wpfm-gray-border-color);border-radius:5px}.wpfm-with-bg-image-row{display:inline-block;vertical-align:top;margin-bottom:2rem;width:100%}.wpfm-with-bg-image-row p{text-align:left;padding:20px;background:var(--wpfm-gray-border-color);border-radius:4px}img.wpfm-organic-tag-icon{width:20px;height:20px;object-fit:cover}.ui-autocomplete{list-style:none;padding-left:10px;margin:0;position:absolute!important}@media screen and (max-width:1024px){.wpfm-single-food-page .wpfm-single-food-body .wpfm-single-food-left-content{max-width:60%;flex:0 0 60%}.wpfm-single-food-page .wpfm-single-food-body .wpfm-single-food-right-content,.wpfm-single-food-page .wpfm-single-food-header-top .wpfm-single-food-short-info{max-width:40%;flex:0 0 40%}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-single-image-wrapper .wpfm-food-single-image img{height:400px;width:100%}}@media screen and (min-width:993px){#food-manager-food-dashboard table td .parent-organic-tag:hover::before,#food-manager-food-dashboard table td span.wpfm-front-radio-icon:hover:before{right:inherit;left:calc(100% + 5px)}#food-manager-food-dashboard table td .parent-organic-tag:hover::after,#food-manager-food-dashboard table td span.wpfm-front-radio-icon:hover:after{left:100%;right:inherit}}@media screen and (max-width:992px){table.wpfm-responsive-table-wrapper{border:none}table.wpfm-responsive-table-wrapper,table.wpfm-responsive-table-wrapper tbody,table.wpfm-responsive-table-wrapper td,table.wpfm-responsive-table-wrapper th,table.wpfm-responsive-table-wrapper thead,table.wpfm-responsive-table-wrapper tr{display:block}table.wpfm-responsive-table-wrapper thead tr{position:absolute;top:-9999px;left:-9999px}table.wpfm-responsive-table-wrapper tr{border:1px solid var(--wpfm-gray-border-color)}table.wpfm-responsive-table-wrapper td{border:none;border-bottom:1px solid #eee;position:relative;padding-left:50%!important;white-space:normal;text-align:left}table.wpfm-responsive-table-wrapper td:before{position:absolute;top:15px;left:16px;width:45%;padding-right:10px;white-space:normal;text-align:left;font-weight:600;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;max-height:52px;line-height:20px;-webkit-line-clamp:2;-webkit-box-orient:vertical;content:attr(data-title)}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content::after,table.wpfm-responsive-table-wrapper .wpfm-tbody-th-label{display:none}.wpfm-single-food-page .wpfm-single-food-body .wpfm-single-food-left-content,.wpfm-single-food-page .wpfm-single-food-body .wpfm-single-food-right-content,.wpfm-single-food-page .wpfm-single-food-header-top .wpfm-single-food-images,.wpfm-single-food-page .wpfm-single-food-header-top .wpfm-single-food-short-info{max-width:100%;flex:0 0 100%}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-single-image-wrapper .wpfm-food-single-image img{height:auto;width:100%}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider .wpfm-slider-items img{height:450px;width:100%}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-short-info{padding:25px 35px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-details{width:100%;margin-bottom:0}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-details .wpfm-food-title{margin-bottom:0}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-single-food-body-content{padding:20px}.food_listing_preview_title{margin:0}.food_listing_preview_title .food-manager-button-edit-listing,.food_listing_preview_title .food-manager-button-submit-listing{margin:0 auto;max-width:200px;width:100%}.food_listing_preview_title h2{margin:10px 20px;width:100%}#food-manager-food-dashboard table td.food_title{width:inherit}}@media screen and (max-width:768px){.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider .wpfm-slider-items img{height:400px;width:100%}.wpfm-single-food-page .wpfm-single-food-sidebar-info{margin-bottom:0}.wpfm-single-food-page .wpfm-share-this-food{margin-top:20px}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-theme-button,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar a.wpfm-theme-button,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar button.wpfm-theme-button,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar input.wpfm-theme-button{padding:15px}.wpfm-tabs-wrapper .wpfm-tabs-wrap{display:inline-block;width:100%}.wpfm-tabs-wrapper .wpfm-tabs-wrap .wpfm-tab-link{border-top:1px solid var(--wpfm-gray-border-color)}.wpfm-tabs-wrapper .wpfm-tabs-wrap .wpfm-tab-link:first-child{border-top:0}.fm-food-menu-container,.wpfm-dashboard-main-header .wpfm-foods-filter{flex-direction:column}.fm-food-menu-container .food-list-box{width:calc(100% - 20px)}.wpfm-dashboard-main-header .wpfm-foods-filter .wpfm-foods-filter-block.wpfm-foods-filter-submit{width:100%}}@media screen and (max-width:575px){.wpfm-form-wrapper .wpfm-col{width:100%;flex:unset}.wpfm-form-wrapper .filter_wide.filter_by_tag{text-align:center}.wpfm-form-wrapper .filter_wide.filter_by_tag .filter_by_tag_cloud{margin-top:5px}.wpfm-form-wrapper .filter_wide.filter_by_tag .filter_by_tag_cloud .tag-cloud-link{margin:2px}.wpfm-form-wrapper .showing_applied_filters{text-align:center;line-height:18px;padding:5px 10px}.wpfm-form-wrapper .showing_applied_filters a{float:none;margin:7px}.wpfm-food-listings-header .wpfm-food-listing-header-title .wpfm-heading-text{text-align:center;margin-bottom:10px}.wpfm-food-listings-header .wpfm-food-layout-action-wrapper .wpfm-food-layout-action{margin:auto;width:100%;border-radius:5px;overflow:hidden;justify-content:center}.wpfm-food-listings-header .wpfm-food-layout-action-wrapper .wpfm-food-layout-action .wpfm-food-layout-icon{height:35px;line-height:35px;width:33.3%;margin:0;border-radius:0}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider .wpfm-slider-items img{height:300px;width:100%}.food-manager-pagination ul.page-numbers{display:inline-block;text-align:center}.food-manager-pagination ul.page-numbers li{padding:3px}.food-manager-pagination ul.page-numbers li .page-numbers{margin:0}#food-manager-food-dashboard table td.food_title{display:block}#food-manager-food-dashboard table td .parent-organic-tag{justify-content:start;margin-top:10px}small.wpfm-food-status-pending-approval{margin-top:10px}}1 :root{--wpfm-primary-color:#ff4600;--wpfm-dark-color:#000000;--wpfm-gray-color:#555555;--wpfm-white-color:#ffffff;--wpfm-gray-border-color:#dddddd;--wpfm-gray-bg-color:#f5f5f5}*{box-sizing:inherit}[class^=wpfm]{box-sizing:border-box;-webkit-box-sizing:border-box}.wpfm-main{font-size:16px;line-height:1.42;color:var(--wpfm-dark-color);font-weight:400}.wpfm-main a{color:var(--wpfm-gray-color);text-decoration:none;outline:0;transition:color .2s}.wpfm-main a:active,.wpfm-main a:focus,.wpfm-main a:hover{color:var(--wpfm-primary-color);text-decoration:none;outline:0}.wpfm-main b,.wpfm-main strong{font-weight:600}.wpfm-loading,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-single-image-wrapper,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper{position:relative}.wpfm-main .wpfm-heading-text{font-weight:400}.wpfm-loading::before{content:"";height:100%;width:100%;position:absolute;left:0;top:0;z-index:99;background:rgba(255,255,255,.7)}.wpfm-loading::after{content:"";background-image:url(../images/ajax-loader.gif);position:absolute;height:30px;width:30px;background-repeat:no-repeat;background-size:contain;background-position:center;left:50%;top:50%;transform:translate(-50%,-50%);z-index:100}.wpfm-alert{position:relative;padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:5px}.wpfm-alert a{background:rgba(0,0,0,.6);font-size:14px;line-height:15px;color:var(--wpfm-white-color);padding:5px 10px;border-radius:5px;display:inline-block;transition:.2s}.wpfm-alert a:hover{background:var(--wpfm-dark-color);color:var(--wpfm-white-color)}.wpfm-alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.wpfm-alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.wpfm-alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.wpfm-alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.wpfm-alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.wpfm-alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.wpfm-alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.wpfm-alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.food-manager-pagination{text-align:center;display:inline-block;width:100%}.food-manager-pagination ul.page-numbers{margin:0 auto;padding:0;display:inline-flex}.food-manager-pagination ul.page-numbers li{list-style:none;display:inline-block;margin:0 2px}.food-manager-pagination ul.page-numbers li .page-numbers{font-size:14px;line-height:20px;font-weight:400;padding:5px 10px;display:inline-block;border:2px solid var(--wpfm-gray-border-color);background:var(--wpfm-white-color);color:var(--wpfm-gray-color)}.food-manager-pagination ul.page-numbers li .page-numbers:hover{border-color:#999}.food-manager-pagination ul.page-numbers li .page-numbers.current{border-color:var(--wpfm-primary-color);background:var(--wpfm-primary-color);color:var(--wpfm-white-color)}.wpfm-form-wrapper{margin-bottom:20px;line-height:25px}.wpfm-form-wrapper .wpfm-form-title{font-size:23px;line-height:28px;font-weight:500;color:var(--wpfm-dark-color);padding:0;margin:0 0 20px}.wpfm-form-wrapper fieldset{border:none;margin:0 0 20px;padding:0}.wpfm-food-listings-header,.wpfm-form-wrapper .wpfm-form-group,.wpfm-single-food-image{margin-bottom:20px}.wpfm-form-wrapper .wpfm-form-group .require-field{color:red}.food_manager .featured-media,.post-thumbnail .wp-post-image,.single-food_manager .wp-post-image,.wpfm-accordion-item .wpfm-accordion-body,.wpfm-form-wrapper .wpfm-form-group .food-manager-uploaded-files .food-manager-uploaded-file.empty-src,.wpfm-form-wrapper .wpfm-form-group .wpfm-form-label,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider ul.slick-dots li button::before,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider ul.slick-dots li::before,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider ul.slick-dots::before{display:none}.wpfm-form-wrapper .wpfm-form-group .wpfm-form-label-text{color:var(--wpfm-dark-color);margin:0 0 7px;display:inline-block}.wpfm-form-wrapper .wpfm-form-group input[type=color],.wpfm-form-wrapper .wpfm-form-group input[type=date],.wpfm-form-wrapper .wpfm-form-group input[type=datetime-local],.wpfm-form-wrapper .wpfm-form-group input[type=datetime],.wpfm-form-wrapper .wpfm-form-group input[type=email],.wpfm-form-wrapper .wpfm-form-group input[type=file],.wpfm-form-wrapper .wpfm-form-group input[type=month],.wpfm-form-wrapper .wpfm-form-group input[type=number],.wpfm-form-wrapper .wpfm-form-group input[type=password],.wpfm-form-wrapper .wpfm-form-group input[type=search],.wpfm-form-wrapper .wpfm-form-group input[type=tel],.wpfm-form-wrapper .wpfm-form-group input[type=text],.wpfm-form-wrapper .wpfm-form-group input[type=time],.wpfm-form-wrapper .wpfm-form-group input[type=url],.wpfm-form-wrapper .wpfm-form-group input[type=week],.wpfm-form-wrapper .wpfm-form-group select,.wpfm-form-wrapper .wpfm-form-group textarea{height:45px;width:100%;margin:0;outline:0;border:1px solid var(--wpfm-gray-border-color);border-radius:4px;font-size:16px;font-weight:400;line-height:45px;padding:0 15px;background-color:var(--wpfm-white-color);color:var(--wpfm-dark-color);transition:.2s}.wpfm-form-wrapper .wpfm-form-group input[type=color]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=date]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=datetime-local]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=datetime]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=email]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=file]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=month]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=number]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=password]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=search]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=tel]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=text]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=time]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=url]:hover,.wpfm-form-wrapper .wpfm-form-group input[type=week]:hover,.wpfm-form-wrapper .wpfm-form-group select:hover,.wpfm-form-wrapper .wpfm-form-group textarea:hover{border-color:#999;background-color:var(--wpfm-white-color);transition:.2s}.wpfm-form-wrapper .wp-editor-container:focus,.wpfm-form-wrapper .wpfm-form-group input[type=color]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=date]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=datetime-local]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=datetime]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=email]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=file]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=month]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=number]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=password]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=search]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=tel]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=text]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=time]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=url]:focus,.wpfm-form-wrapper .wpfm-form-group input[type=week]:focus,.wpfm-form-wrapper .wpfm-form-group select:focus,.wpfm-form-wrapper .wpfm-form-group textarea:focus{border-color:var(--wpfm-primary-color)}.wpfm-form-wrapper .wp-editor-container{border-radius:4px;overflow:hidden}.wpfm-form-wrapper .wp-editor-container:hover{border-color:#999;transition:.2s}.wpfm-form-wrapper .wpfm-form-group input[type=file]{line-height:20px;padding:8px 10px}.wpfm-form-wrapper .wpfm-form-group input[type=number]{padding-right:0;width:100%;max-width:unset}.wpfm-form-wrapper .wpfm-form-group select{padding:0 12px}.wpfm-form-wrapper .wpfm-form-group textarea{height:auto;padding:15px;line-height:22px}.food-manager-uploaded-file-preview span.food-manager-uploaded-file-name{padding:20px 10px 15px;display:inline-block;border:2px solid var(--wpfm-gray-border-color);border-radius:4px}.wpfm-form-wrapper .wpfm-form-group .food-manager-uploaded-files .food-manager-uploaded-file{margin-bottom:20px;display:inline-block;padding-right:20px;vertical-align:top}.wpfm-form-wrapper .wpfm-form-group .food-manager-uploaded-files .food-manager-uploaded-file .food-manager-uploaded-file-preview{display:inline-block;position:relative}.wpfm-form-wrapper .wpfm-form-group .food-manager-uploaded-files .food-manager-uploaded-file .food-manager-uploaded-file-preview img{max-height:100px;max-width:100px;border:2px solid var(--wpfm-gray-border-color);border-radius:6px}.wpfm-form-wrapper .wpfm-form-group .food-manager-uploaded-files .food-manager-uploaded-file .food-manager-uploaded-file-preview .food-manager-remove-uploaded-file{font-size:0;height:20px;width:20px;background:var(--wpfm-white-color);position:absolute;top:2px;right:2px;border-radius:0 4px;border:none;box-shadow:2px 2px 10px rgba(0,0,0,.2)}.wpfm-form-wrapper .wpfm-form-group .food-manager-uploaded-files .food-manager-uploaded-file .food-manager-uploaded-file-preview .food-manager-remove-uploaded-file::before{content:"\ea0f";font-family:wp-food-manager;font-size:10px;color:red;top:50%;position:absolute;left:50%;transform:translate(-50%,-50%);transition:.2s}.fm-food-menu-container .food-list-box:focus,.fm-food-menu-container .food-list-box>a,.wpfm-dashboard-main-title.wpfm-dashboard-main-filter a.wpfm-dashboard-header-btn:hover i,.wpfm-form-wrapper .wpfm-form-group .food-manager-uploaded-files .food-manager-uploaded-file .food-manager-uploaded-file-preview .food-manager-remove-uploaded-file:hover::before,.wpfm-main .wpfm-theme-url a:hover,.wpfm-main .wpfm-theme-url:hover,.wpfm-tabs-wrapper .wpfm-tabs-wrap .wpfm-tab-link a,.wpfm-tabs-wrapper .wpfm-tabs-wrap .wpfm-tab-link a:hover,.wpfm-theme-text-button:hover,.wpfm-theme-url a:hover,.wpfm-theme-url:hover,table.wpfm-responsive-table-wrapper tbody tr td a:hover{color:var(--wpfm-dark-color)}.wpfm-form-wrapper .showing_applied_filters{background:var(--wpfm-gray-bg-color);font-size:15px;border-radius:4px;padding:5px 10px;margin:10px 0;display:inline-block;width:100%}.wpfm-form-wrapper .showing_applied_filters span{margin:2px;display:inline-block}.wpfm-form-wrapper .showing_applied_filters a{float:right;margin:2px}.wpfm-main fieldset{border:none}.wpfm-theme-button,a.wpfm-theme-button,button.wpfm-theme-button,input.wpfm-theme-button{background:var(--wpfm-primary-color);color:var(--wpfm-white-color);border:none;padding:10px 20px;width:auto;text-transform:uppercase;font-weight:600;border-radius:4px;font-size:16px;line-height:1.42;margin:5px 0;letter-spacing:0;display:inline-block;cursor:pointer;transition:.2s;vertical-align:middle}.wpfm-theme-button span,.wpfm-theme-button:focus span,.wpfm-theme-button:hover span,a.wpfm-theme-button span,a.wpfm-theme-button:focus span,a.wpfm-theme-button:hover span,button.wpfm-theme-button span,button.wpfm-theme-button:focus span,button.wpfm-theme-button:hover span,input.wpfm-theme-button span,input.wpfm-theme-button:focus span,input.wpfm-theme-button:hover span{color:var(--wpfm-white-color)}.wpfm-theme-button:focus,.wpfm-theme-button:hover,a.wpfm-theme-button:focus,a.wpfm-theme-button:hover,button.wpfm-theme-button:focus,button.wpfm-theme-button:hover,input.wpfm-theme-button:focus,input.wpfm-theme-button:hover{background:var(--wpfm-dark-color);border:none;outline:0}.organizer-related-data-wrapper .show-organizer-info .wpfm-list-group .organizer-name-list .organizer-list-items a:hover,.venue-related-data-wrapper .show-venue-info .wpfm-list-group .venue-name-list .venue-list-items a:hover,.wpfm-main .wpfm-theme-url,.wpfm-main .wpfm-theme-url a,.wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li .wpfm-main-vmenu-dashboard-link:hover,.wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li .wpfm-main-vmenu-dashboard-link:hover i,.wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li a.wpfm-main-vmenu-dashboard-link.wpfm-main-vmenu-dashboard-link-active i,.wpfm-main-vmenu-dashboard-wrapper .wpfm-main-vmenu-dashboard-content-wrap .wpfm-dashboard-events-block-wrap .wpfm-dashboard-event-list-wrapper .wpfm-dashboard-event-list .wpfm-dashboard-event-name a:hover,.wpfm-single-event-page .wpfm-single-event-footer .wpfm-venue-wrapper .wpfm-venue-profile .wpfm-venue-name.wpfm-heading-text a:hover,.wpfm-theme-text-button,.wpfm-theme-url,.wpfm-theme-url a{color:var(--wpfm-primary-color)}.wpfm-theme-button i{line-height:normal}.wpfm-theme-button.wpfm-theme-button-icon-left{position:relative;padding-left:40px}.wpfm-theme-button.wpfm-theme-button-icon-left i{position:absolute;left:15px;top:50%;transform:translate(0,-50%)}.wpfm-theme-button.wpfm-theme-button-icon-right{position:relative;padding-right:40px}.wpfm-theme-button.wpfm-theme-button-icon-right i{position:absolute;right:15px;top:50%;transform:translate(0,-50%)}.wpfm-theme-button.wpfm-active-button{background:var(--wpfm-gray-color)}.wpfm-dashboard-main-header .wpfm-foods-filter .wpfm-form-group button:hover,.wpfm-theme-button.wpfm-active-button:hover{background:var(--wpfm-dark-color)}.wpfm-tabs-wrapper{width:100%;margin-bottom:20px;border:2px solid var(--wpfm-gray-border-color);border-radius:5px}.wpfm-tabs-wrapper .wpfm-tabs-wrap{display:flex;background:var(--wpfm-gray-bg-color);margin:0;padding:0}.wpfm-tabs-wrapper .wpfm-tabs-wrap .wpfm-tab-link{padding:15px 25px;list-style:none;cursor:pointer;font-size:17px;font-weight:600;background:var(--wpfm-gray-bg-color);transition:.2s;color:var(--wpfm-dark-color)}.wpfm-tabs-wrapper .wpfm-tabs-wrap .wpfm-tab-link.active{background:var(--wpfm-white-color);color:var(--wpfm-dark-color);cursor:default}.wpfm-tabs-wrapper .wpfm-tabs-wrap .wpfm-tab-link.active a{cursor:default}.wpfm-tabs-wrapper .wpfm-tab-content{padding:25px;display:none;margin:0}.wpfm-accordion-item-show .wpfm-accordion-body,.wpfm-tabs-wrapper .wpfm-tab-content .wpfm-tab-pane.active,.wpfm-tabs-wrapper .wpfm-tab-content.current{display:block}.wpfm-tabs-wrapper .wpfm-tab-content .wpfm-tab-pane{display:none;list-style:none}.wpfm-single-food-page .wpfm-single-food-wrapper,.wpfm-tabs-wrapper .wpfm-food-listings .wpfm-food-layout-wrapper{border:1px solid var(--wpfm-gray-border-color)}.wpfm-with-bg-image{background-size:cover;background-position:center;min-height:250px;display:flex;justify-content:center;align-items:center;width:100%;max-width:100%;position:relative;border-radius:4px;padding:15px}.wpfm-food-listings-header .wpfm-food-layout-action-wrapper .wpfm-food-layout-action .wpfm-food-layout-icon:hover,.wpfm-view-more{background:var(--wpfm-gray-border-color)}.wpfm-with-bg-image .wpfm-heading-text{color:var(--wpfm-white-color);margin:0;position:relative;z-index:1}.wpfm-with-bg-image::before{border-radius:4px;background:var(--wpfm-dark-color);position:absolute;content:'';left:0;right:0;top:0;bottom:0;opacity:.5}.wpfm-with-bg-image::after{content:'';background:var(--wpfm-primary-color);position:absolute;bottom:0;left:0;right:0;height:5px}.wpfm-view-more{position:absolute;bottom:-12px;top:auto;left:21px;right:auto;padding:5px 15px 4px;border-radius:3px;font-size:12px;font-weight:600;cursor:pointer}.wpfm-additional-main-row .wpfm-additional-info-block-details-content-items p{word-break:break-word;font-size:14px;margin-bottom:0}.wpfm-additional-main-row .wpfm-additional-info-block-details-content-items{padding:10px 0;border-top:1px solid var(--wpfm-gray-border-color)}.wpfm-additional-main-row [class^=wpfm-col]{width:100%;flex:0 0 100%;max-width:100%}.wpfm-dashboard-main-header .wpfm-foods-filter{background:var(--wpfm-gray-bg-color);padding:10px 15px;margin:0;border-radius:3px;display:flex;position:relative}.wpfm-dashboard-main-header .wpfm-foods-filter::before{content:'';background:var(--wpfm-gray-bg-color);height:20px;width:20px;position:absolute;right:8px;top:-7px;transform:rotate(45deg)}.wpfm-dashboard-main-header .wpfm-foods-filter .wpfm-foods-filter-block{width:100%;margin-right:10px}.wpfm-dashboard-main-header .wpfm-foods-filter .wpfm-foods-filter-block.wpfm-foods-filter-submit{width:auto}.wpfm-dashboard-main-header .wpfm-foods-filter .wpfm-form-group{margin:5px 0}.wpfm-dashboard-main-header .wpfm-foods-filter .wpfm-form-group button{width:100%;height:45px;margin:0;white-space:nowrap}.wpfm-dashboard-main-title.wpfm-dashboard-main-filter a.wpfm-dashboard-header-btn i[class^=wpfm-icon-]{color:var(--wpfm-primary-color);transition:.2s}.wpfm-dashboard-main-title.wpfm-dashboard-main-filter a.wpfm-dashboard-header-btn{display:inline-flex;border:1px solid var(--wpfm-gray-border-color);padding:10px;border-radius:3px;align-items:center;font-size:16px;line-height:25px}.wpfm-dashboard-main-title.wpfm-dashboard-main-filter .wpfm-d-inline-block.wpfm-dashboard-i-block-btn{margin:0 0 0 auto}.wpfm-dashboard-main-title.wpfm-dashboard-main-filter h3.wpfm-theme-text{margin:0;padding:0;font-weight:700}.wpfm-dashboard-main-title.wpfm-dashboard-main-filter{display:flex;flex-wrap:nowrap;justify-content:space-between;margin-bottom:15px;align-items:center}.wpfm-main-vmenu-dashboard-wrapper .wpfm-main-vmenu-dashboard-nav ul.wpfm-main-vmenu-dashboard-ul{border-left:1px solid var(--wpfm-gray-border-color);border-right:1px solid var(--wpfm-gray-border-color);list-style:none}.wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li,.wpfm-main-vmenu-dashboard-wrapper .wpfm-main-vmenu-dashboard-nav-menu .wpfm-main-vmenu-dashboard-nav ul{list-style:none;margin:0;padding:0}.wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li a.wpfm-main-vmenu-dashboard-link.wpfm-main-vmenu-dashboard-link-active{font-weight:600;color:var(--wpfm-primary-color);transition:.2s linear}.wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li:first-child .wpfm-main-vmenu-dashboard-link{border-top:1px solid var(--wpfm-gray-border-color)}.wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li .wpfm-main-vmenu-dashboard-link{display:flex;align-items:center;padding:10px 15px;color:var(--wpfm-dark-color);font-size:16px;word-break:break-word;text-decoration:none;border-bottom:1px solid var(--wpfm-gray-border-color);transition:.2s linear}.wpfm-main-vmenu-dashboard-nav .wpfm-main-vmenu-dashboard-ul .wpfm-main-vmenu-dashboard-li .wpfm-main-vmenu-dashboard-link i{margin-right:10px;font-size:14px}.wpfm-form-wrapper .chosen-container{width:100%!important;outline:0;margin:0;border-radius:4px;border:1px solid var(--wpfm-gray-border-color);background-color:var(--wpfm-white-color);transition:.2s}.wpfm-form-wrapper .chosen-container:hover{border-color:var(--wpfm-gray-border-color);background-color:var(--wpfm-white-color);transition:.2s}.wpfm-form-wrapper .chosen-container:focus{border-color:var(--wpfm-primary-color);background-color:var(--wpfm-white-color)}.wpfm-form-wrapper .chosen-container.chosen-container-multi .chosen-choices{border:0;box-shadow:none;background:0 0}.wpfm-form-wrapper .chosen-container.chosen-container-multi .chosen-choices li.search-choice{margin:11px 0 11px 10px;border-color:var(--wpfm-gray-border-color);background:var(--wpfm-gray-bg-color);padding:5px 20px 5px 5px;font-size:14px;box-shadow:none}.wpfm-form-wrapper .chosen-container.chosen-container-multi .chosen-choices li.search-choice:first-of-type{margin-left:0}.wpfm-form-wrapper .chosen-container.chosen-container-multi .chosen-choices li.search-field input[type=text]{font-size:16px;font-family:inherit;height:41px;font-weight:400;padding:0;margin:0}.wpfm-form-wrapper .chosen-container-multi .chosen-choices li.search-choice .search-choice-close{top:6px}.wpfm-form-wrapper .chosen-container .chosen-choices,.wpfm-form-wrapper .chosen-container .chosen-single{padding:0 15px;font-size:16px;line-height:42px;font-weight:400;color:var(--wpfm-dark-color);background:0 0;height:auto;border:none;box-shadow:unset;border-radius:4px}.wpfm-form-wrapper .chosen-container-single .chosen-default,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-additional-info-block-details .wpfm-additional-info-block-textarea p{color:var(--wpfm-gray-color)}.wpfm-form-wrapper .chosen-container .chosen-single div b{background-position:0 12px}.wpfm-form-wrapper .chosen-container .chosen-drop{top:calc(100% - 2px);border-color:var(--wpfm-gray-border-color);border-top:0;border-radius:0 0 4px 4px;margin:0 0 0 -1px;box-shadow:7px 5px 15px rgb(0 0 0 / 10%);width:calc(100% + 2px);transition:border-color .2s}.wpfm-form-wrapper .chosen-container .chosen-drop:hover{border-color:var(--wpfm-gray-border-color)}.selection-preview ul li,.wpfm-food-listing-list-view .wpfm-food-box-col:last-of-type .wpfm-food-layout-wrapper{border-bottom:1px solid var(--wpfm-gray-border-color)}.wpfm-form-wrapper .chosen-container .chosen-search input[type=text]{height:auto;line-height:20px;font-size:16px;padding:1px 4px;min-height:unset}.wpfm-form-wrapper .chosen-container .chosen-drop .chosen-results li{font-size:14px}.wpfm-form-wrapper .chosen-container .chosen-drop .chosen-results li.highlighted{background:var(--wpfm-primary-color)}.wpfm-options-box fieldset.wpfm-form-group:last-child table.widefat{font-size:14px;margin:0;border:1px solid var(--wpfm-gray-border-color)}.wpfm-options-box fieldset.wpfm-form-group:last-child table.widefat td,.wpfm-options-box fieldset.wpfm-form-group:last-child table.widefat th{border:1px solid var(--wpfm-gray-border-color);border-radius:3px}.wpfm-food-listing-box-view .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details,.wpfm-options-box td,.wpfm-options-box th{padding:10px}.wpfm-options-box td input[type=checkbox]{height:16px!important;border:1px solid var(--wpfm-gray-border-color)}.wpfm-form-wrapper .wpfm-options-box .wpfm-form-group table td input,.wpfm-form-wrapper .wpfm-options-box .wpfm-form-group table td select{height:34px;line-height:34px;font-size:14px}.wpfm-input-field{background:var(--wpfm-white-color);padding:15px;position:relative;border-radius:4px;border:2px solid var(--wpfm-gray-border-color);margin:0;width:100%;display:inline-block;vertical-align:top;box-sizing:border-box}.wpfm-form-wrapper .wpfm-actions{margin:30px 0}.wpfm-form-wrapper .wpfm-actions button.wpfm-add-button{background-color:var(--wpfm-gray-bg-color);color:var(--wpfm-dark-color);padding:6px 12px;border:0;border-radius:4px;transition:.02s;cursor:pointer;font-weight:500}.wpfm-form-wrapper .wpfm-actions button.wpfm-add-button:hover,a.button.wpfm-add-row:hover{background-color:var(--wpfm-primary-color);color:var(--wpfm-white-color)}.wpfm-form-wrapper .postbox span.attribute_key input[type=text]{padding:2px}.wpfm-form-wrapper .wpfm-metabox{background:var(--wpfm-white-color);margin:15px 0 0!important;border-bottom:2px solid var(--wpfm-gray-border-color);border-radius:4px}.wpfm-form-wrapper .wpfm-content{padding:1em}.food_listing_preview_title h2,.wpfm-form-wrapper .wpfm-content .wpfm-form-group:last-of-type,.wpfm-input-description>p{margin-bottom:0}.wpfm-form-wrapper .wpfm-content .field label{margin-right:10px}.wpfm-form-wrapper .postbox{border:2px solid var(--wpfm-gray-bg-color)}.wpfm-metabox h3{margin:0!important;padding:.75em .75em .75em 1em!important;font-size:1em!important;overflow:hidden;zoom:1;cursor:pointer}.food_listing_preview_action_button .food-manager-button-submit-listing,.wpfm-metabox h3 a.wpfm-delete-btn,.wpfm-metabox h3 button{float:right}.wpfm-metabox h3 a.wpfm-delete-btn::before{font-size:23px}.wpfm-metabox h3 a.wpfm-delete-btn{font-size:0;color:red;font-weight:400;line-height:26px;text-decoration:none;position:relative}.wpfm-metabox .wpfm-togglediv{width:27px;float:right}.wpfm-metabox.closed .wpfm-togglediv::before{content:"\f140"!important}.wpfm_error_tip{color:var(--wpfm-white-color);font-size:.8em;background:var(--wpfm-dark-color);text-align:center;border-radius:3px;padding:.618em 1em;box-shadow:0 1px 3px rgba(0,0,0,.2);max-width:20em;line-height:1.8em;position:absolute;white-space:normal;background:#d82223;margin:1.5em 1px 0 -1em;z-index:9999999}.wpfm_error_tip::after{content:"";display:block;border:8px solid #d82223;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent;position:absolute;top:-3px;left:50%;margin:-1em 0 0 -3px}.wpfm-metabox .wpfm-togglediv::before{content:"\f142"!important;cursor:pointer;display:inline-block;font:400 20px/1 Dashicons;line-height:.5!important;padding:8px 10px;position:relative;right:12px;top:0}.wpfm-metabox h3 strong{line-height:26px;font-weight:700}.selection-preview ul li:last-of-type,textarea#food_description{border:0}.wpfm-field-switch input{opacity:0;width:0;height:0}.wpfm-field-switch-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--wpfm-gray-border-color);-webkit-transition:.4s;-o-transition:.4s;transition:.4s}label.wpfm-field-switch{position:relative;display:inline-block;width:50px;height:24px;float:none;margin:0}.wpfm-field-switch-slider:before{position:absolute;content:"";height:16px;width:16px;left:4px;bottom:4px;background-color:var(--wpfm-white-color);-webkit-transition:.4s;-o-transition:.4s;transition:.4s}input:checked+.wpfm-field-switch-slider:before{-webkit-transform:translateX(26px);-ms-transform:translateX(26px);transform:translateX(26px)}.wpfm-field-switch-slider.round:before{border-radius:50%}.wpfm-field-switch-slider.round{border-radius:34px}input:checked+.wpfm-field-switch-slider{background-color:var(--wpfm-primary-color)}.wpfm-options-box fieldset.wpfm-form-group table.widefat a.option-delete-btn{font-size:0}.wpfm-options-box fieldset.wpfm-form-group:last-child table.widefat input.opt_default{text-align:center;width:100%;height:14px}a.option-delete-btn::before{font-size:24px}span.wpfm-option-sort:hover{cursor:move}a.button.wpfm-add-row{cursor:pointer;background:var(--wpfm-white-color);padding:3px 12px;border-radius:4px;float:right;font-size:14px;color:var(--wpfm-primary-color);border:1px solid var(--wpfm-primary-color);font-weight:500}.wpfm-inner-field-content{display:flex;flex-flow:column}.wpfm-input-singular{display:flex;align-items:center;column-gap:8px;word-break:break-word}.wpfm-img-single img{width:65%;border-radius:10px;height:auto;object-fit:cover}.selection-preview ul{list-style:none;margin:10px 0 0;padding:0;background-color:var(--wpfm-gray-bg-color);border-radius:4px}.selection-preview ul li{padding:15px 0}.selection-preview ul li label{margin:0 15px 5px;display:block;line-height:normal}.selection-preview ul li .term-item-flex{display:flex;padding:0 7.5px}.selection-preview ul li .term-item-flex input,.selection-preview ul li .term-item-flex select{margin:0 7.5px!important}.wpfm-form-wrapper .wpfm-form-group .selection-preview{margin-top:5px}.mce-btn button:hover{background:0 0;color:transparent}.mce-btn.mce-active button,.mce-btn.mce-active i,.mce-btn.mce-active:hover button,.mce-btn.mce-active:hover i{color:var(--wpfm-dark-color)!important}.wpfm-food-listings .parent-organic-tag.non-vegetarian:hover::before{content:'Non Veg'}.wpfm-food-listings-header .wpfm-food-listing-header-title .wpfm-heading-text{font-size:25px;line-height:33px;font-weight:500;margin:0}.wpfm-food-listings-header .wpfm-food-layout-action-wrapper{display:flex;width:100%}.wpfm-food-listings-header .wpfm-food-layout-action-wrapper .wpfm-food-layout-action{display:inline-flex;margin-left:auto}.wpfm-food-listings-header .wpfm-food-layout-action-wrapper .wpfm-food-layout-action .wpfm-food-layout-icon{height:30px;width:30px;background:var(--wpfm-gray-bg-color);color:var(--wpfm-gray-color);margin-left:5px;border-radius:4px;cursor:pointer;font-size:16px;transition:.2s;display:flex;align-items:center;justify-content:center}.wpfm-food-listings-header .wpfm-food-layout-action-wrapper .wpfm-food-layout-action .wpfm-food-layout-icon.wpfm-active-layout{background:var(--wpfm-primary-color);color:var(--wpfm-white-color);cursor:default}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-banner{width:100%;background-color:var(--wpfm-gray-bg-color)}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation,.wpfm-food-single-image img{width:100%}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-type-flex-container{display:flex;align-items:center}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-type{display:inline-block}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-type .wpfm-food-type-text{background:var(--wpfm-gray-bg-color);color:var(--wpfm-dark-color);padding:5px 7px;display:inline-block;line-height:15px;font-weight:400;font-size:14px;border-radius:2px}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-price,.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-title,.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-type{margin:5px;min-height:23px}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-title,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-details .wpfm-food-title{margin-bottom:10px}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-title .wpfm-heading-text{font-size:18px;line-height:25px;font-weight:500;color:var(--wpfm-dark-color);margin:0;word-break:break-word}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-price{font-weight:700;display:flex;align-items:center;color:var(--wpfm-primary-color);font-size:18px}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-price del{margin-right:5px;color:var(--wpfm-gray-color);font-weight:500;font-size:14px}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-price ins{color:var(--wpfm-primary-color);font-size:18px}.wpfm-food-listings .wpfm-food-layout-wrapper .wpfm-food-infomation .wpfm-food-details .wpfm-food-type-tag{margin:5px;display:flex;align-items:center}.wpfm-food-listings .wpfm-food-layout-wrapper.food_featured,.wpfm-food-listings .wpfm-food-layout-wrapper.food_featured:hover{background:#ffffe4}.wpfm-food-listings .wpfm-food-layout-wrapper.food_cancelled,.wpfm-food-listings .wpfm-food-layout-wrapper.food_cancelled:hover{background:#ffe5e5}.wpfm-food-listings .no_food_listings_found{text-align:center;color:#721c24;display:inline-block;width:100%}.food_listings a.load_more_foods{margin:0 auto;text-align:center;border-radius:5px;display:table;background:var(--wpfm-gray-bg-color);color:var(--wpfm-gray-color);text-transform:uppercase;padding:10px 25px;font-size:15px;letter-spacing:.5px;transition:.2s}.food_listings a.load_more_foods:hover{background:var(--wpfm-gray-color);color:var(--wpfm-white-color)}.wpfm-food-listings .food-stock-status{margin:5px}.wpfm-food-listing-box-view .wpfm-food-box-col,.wpfm-food-listing-list-view{padding-bottom:30px}.wpfm-food-listing-box-view .wpfm-food-layout-wrapper{border:1px solid var(--wpfm-gray-border-color);width:100%;height:100%;border-radius:4px;transition:.2s;overflow:hidden}.wpfm-food-listing-box-view .wpfm-food-layout-wrapper:hover{box-shadow:1px 1px 10px rgba(0,0,0,.12)}.wpfm-food-listing-box-view .wpfm-food-layout-wrapper .wpfm-food-banner .wpfm-food-banner-img{height:230px;width:100%;background-position:center;background-size:cover}.wpfm-food-listing-box-view .wpfm-food-layout-wrapper .wpfm-food-banner .wpfm-food-register-label{display:block;position:absolute;top:15px;right:15px}.wpfm-food-listing-box-view .no_food_listings_found{padding:15px;text-align:center;color:#721c24!important;display:inline-block;width:100%;margin-left:15px;margin-right:15px}.wpfm-food-listing-list-view .wpfm-food-box-col{max-width:100%;width:100%;margin:0;padding:0}.wpfm-food-listing-list-view .wpfm-food-layout-wrapper .wpfm-food-infomation{padding-left:10px}.wpfm-food-listing-list-view .wpfm-food-layout-wrapper .wpfm-food-banner .wpfm-food-banner-img{height:90px;width:90px;background-size:cover;background-position:center;border-radius:4px}.wpfm-food-listing-list-view .wpfm-food-layout-wrapper .food_manager{margin:0;display:inline-flex;width:100%;padding:23px 17px;border-left:3px solid var(--wpfm-gray-border-color);transition:border .2s}.wpfm-food-listing-list-view .wpfm-food-layout-wrapper{border-top:1px solid var(--wpfm-gray-border-color);border-right:1px solid var(--wpfm-gray-border-color)}.wpfm-food-listing-list-view .wpfm-food-layout-wrapper:hover .food_manager{border-width:7px;border-color:var(--wpfm-primary-color);box-shadow:1px 1px 10px rgba(0,0,0,.12)}.wpfm-food-listing-list-view .wpfm-food-layout-wrapper .food_manager>.wpfm-food-action-url,table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action{display:flex}.wpfm-food-listing-list-view .wpfm-food-layout-wrapper .food_manager>.wpfm-food-action-url .wpfm-food-banner{width:90px;height:90px;background-color:transparent}.wpfm-input-field-common{position:relative;padding:20px;border-radius:4px;background:var(--wpfm-gray-bg-color);margin-bottom:30px}.wpfm-input-field-common>label{display:block;position:relative;overflow:hidden;padding-bottom:5px}.wpfm-input-field-common.with-more{margin-bottom:30px;padding-bottom:35px}.wpfm-input-field-common select{padding:5px 15px;border-color:#d3d3d3;border-radius:4px;width:100%;box-sizing:border-box}.wpfm-single-food-page .wpfm-food-title{display:flex;align-items:center;column-gap:15px}.wpfm-single-food-page .wpfm-food-price{margin:10px 0;font-size:22px;font-weight:500;display:flex;align-items:center}.wpfm-single-food-page .wpfm-food-price del{font-size:18px;color:var(--wpfm-gray-color);margin-right:10px}.wpfm-single-food-page .wpfm-food-price ins{color:var(--wpfm-primary-color);padding:0 5px}.wpfm-single-food-page .food-manager-info{border:1px solid var(--wpfm-gray-border-color);color:var(--wpfm-dark-color);padding:10px 15px 10px 40px;position:relative;display:inline-block;width:100%;margin-bottom:20px;border-radius:5px;background:var(--wpfm-gray-bg-color)}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider ul.slick-dots li.slick-active button,.wpfm-tooltip .wpfm-tooltiptext{background:var(--wpfm-white-color)}.wpfm-single-food-page .food-manager-info i{font-size:19px;position:absolute;left:13px;margin-top:3px;line-height:20px}.wpfm-single-food-page .food-manager-info.food-manager-canceled-info{border-color:#b12828;color:#b12828;background:#fff1f1}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top,table.wpfm-responsive-table-wrapper thead{background:var(--wpfm-gray-bg-color)}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-single-image-wrapper .wpfm-food-single-image img,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider .wpfm-slider-items img{width:100%;height:auto;display:block}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider{position:relative;margin-bottom:0;height:auto}.wpfm-img-multiple.slick-slide img{object-fit:cover;height:250px;width:100%;border-radius:10px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider ul.slick-dots{position:absolute;left:10px;bottom:10px;margin:0;padding:0}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider ul.slick-dots li{height:10px;width:10px;position:relative;margin:4px;font-size:0;line-height:normal;float:left;display:inline-block}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider ul.slick-dots li button{height:10px;width:10px;display:inline-block;border-radius:100%;background:rgba(255,255,255,.5);position:absolute;left:0;top:0;border:none;padding:0;font-size:0}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .slick-arrow{position:absolute;right:0;bottom:0;height:40px;width:40px;font-size:0;line-height:normal;overflow:hidden;background:rgba(0,0,0,.5);padding:0;text-align:center}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .slick-arrow.slick-prev{left:0;top:50%;transform:translate(0,-50%);border:none;z-index:1;cursor:pointer}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .slick-arrow.slick-prev::before{content:"\ea40";font-family:wp-food-manager;font-size:20px;color:var(--wpfm-white-color)}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .slick-arrow.slick-next{right:0;top:50%;transform:translate(0,-50%);border:none;z-index:1;cursor:pointer}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .slick-arrow.slick-next::before{content:"\ea3c";font-family:wp-food-manager;font-size:20px;color:var(--wpfm-white-color)}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-short-info{padding-top:30px;padding-bottom:30px;position:relative}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-details{display:inline-block;width:calc(100% - 30px);margin-bottom:50px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-details .wpfm-food-title .wpfm-heading-text{margin:0;padding:0;font-size:26px;line-height:30px;color:var(--wpfm-dark-color);font-weight:500;letter-spacing:.5px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content::after{content:"";position:absolute;right:15px;top:0;height:100%;width:1px;background:var(--wpfm-gray-border-color)}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-additional-info-block{background:var(--wpfm-gray-border-color);border-top:1px solid var(--wpfm-gray-border-color);border-bottom:1px solid var(--wpfm-gray-border-color);padding:15px 30px;margin:0}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-additional-info-block .wpfm-heading-text{font-size:20px;line-height:1.42}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-additional-info-block-details{padding:30px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-additional-info-block-details .wpfm-additional-info-block-details-content-items{padding:10px 0;border-bottom:1px solid var(--wpfm-gray-border-color)}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-additional-info-block-details p{word-break:break-word;font-size:14px;margin-bottom:0;padding-left:5px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-single-food-body-content{padding:10px 30px 30px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-single-food-body-content .wpfm-heading-text{margin:0 0 15px}.wpfm-food-ingredients,.wpfm-food-nutritions{width:100%;word-break:break-all}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar{padding:30px 30px 30px 0}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-single-food-short-info{padding:30px 30px 0}.wpfm-single-food-page .wpfm-heading-text{font-size:24px;font-weight:700;color:var(--wpfm-dark-color);padding:0;margin:0;line-height:1.42;word-break:break-word}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-heading-text{font-size:18px;color:var(--wpfm-dark-color);padding:0;margin:0 0 5px}.single_food_listing .wpfm-food-details .wpfm-tooltip .wpfm-tooltiptext{min-width:180px;font-size:14px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-single-food-sidebar-info a{color:var(--wpfm-dark-color);text-decoration:unset}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-single-food-sidebar-info a:hover{color:var(--wpfm-dark-color);text-decoration:underline}.wpfm-single-food-page .wpfm-single-food-sidebar-info{margin-bottom:35px}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-theme-button,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar a.wpfm-theme-button,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar button.wpfm-theme-button,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar input.wpfm-theme-button{width:100%;font-size:16px;text-align:center;padding:10px;color:var(--wpfm-white-color)}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-theme-button:hover,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar a.wpfm-theme-button:hover,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar button.wpfm-theme-button:hover,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar input.wpfm-theme-button:hover{color:var(--wpfm-white-color);text-decoration:none}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-icon-text-button{color:var(--wpfm-primary-color);text-decoration:unset;width:100%;line-height:25px;font-weight:500}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-icon-text-button i{float:left;line-height:unset;margin-right:5px}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-icon-text-button:hover{text-decoration:none;color:var(--wpfm-dark-color)}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-icon-text-button.remove-bookmark i{float:right;margin:0;font-size:12px}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-register-food-form form{background:var(--wpfm-gray-bg-color);padding:15px;margin:10px 0;border-radius:5px}.wpfm-single-food-page .wpfm-share-this-food{margin:0;padding:0;display:inline-block;width:100%}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists{display:inline-block;margin:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon{height:35px;width:35px;position:relative;margin:4px 4px 4px 0;float:left;font-size:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon a{height:35px;width:35px;display:inline-block;background:var(--wpfm-gray-border-color);border-radius:100%;opacity:1;transition:.2s}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon a:hover{opacity:.8}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-weblink a{background:#999}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-weblink a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-web-link-icon.svg);-webkit-mask-image:url(../images/wpfm-web-link-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-whatsapp a{background:#3fa21a}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-whatsapp a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-whatsapp-icon.svg);-webkit-mask-image:url(../images/wpfm-whatsapp-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-youtube a{background:#ea1717}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-youtube a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-youtube-icon.svg);-webkit-mask-image:url(../images/wpfm-youtube-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-facebook a{background:#38529a}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-facebook a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-facebook-icon.svg);-webkit-mask-image:url(../images/wpfm-facebook-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-twitter a{background:#4da6d7}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-twitter a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-twitter-icon.svg);-webkit-mask-image:url(../images/wpfm-twitter-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-linkedin a{background:#3671ae}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-linkedin a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-linkedin-icon.svg);-webkit-mask-image:url(../images/wpfm-linkedin-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-xing a{background:#265c60}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-xing a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-xing-icon.svg);-webkit-mask-image:url(../images/wpfm-xing-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-instagram a{background-image:linear-gradient(to right top,#e52705,#ea0037,#e5005a,#d5007b,#bb1497)}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-instagram a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-instagram-icon.svg);-webkit-mask-image:url(../images/wpfm-instagram-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-pinterest a{background:#b81d1a}.wpfm-single-food-page .wpfm-share-this-food .wpfm-food-share-lists .wpfm-social-icon.wpfm-pinterest a::before{background-color:var(--wpfm-white-color);mask-image:url(../images/wpfm-pinterest-icon.svg);-webkit-mask-image:url(../images/wpfm-pinterest-icon.svg);-webkit-mask-size:17px;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;content:"";position:absolute;height:35px;width:35px;background-size:17px;background-position:center;left:0;top:0}.food_listing_preview_title{background:var(--wpfm-gray-bg-color);border-radius:4px 4px 0 0;margin-top:30px;padding:15px 20px;text-align:center;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.food_listing_preview_title h3{padding:0;margin:0;color:var(--wpfm-white-color)}.food_listing_preview{padding:20px;border-radius:0 0 4px 4px}form#food_preview{box-shadow:0 10px 20px rgba(0,0,0,.1);border-radius:4px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-food-category .food-category,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-food-ingredients .food-ingredients,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-food-nutritions .food-nutritions,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-food-tag .food-tag,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-food-type .food-type,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar .wpfm-food-units .food-units{background:var(--wpfm-gray-bg-color);padding:5px 10px;border-radius:5px;font-size:15px;line-height:20px;display:inline-block;margin:5px 5px 0 0}.food_categories span.food-category{padding:5px 7px;background:var(--wpfm-gray-bg-color);margin:0 3px 6px;border-radius:4px;font-size:14px;font-weight:400;display:inline-block;vertical-align:top;color:var(--wpfm-dark-color)}.wpfm-food-details .food-details-row{display:flex;align-items:center;justify-content:space-between}.wpfm-tooltip{position:relative;display:inline-block;border-bottom:1px dotted var(--wpfm-dark-color)}.wpfm-tooltip .wpfm-tooltiptext{visibility:hidden;width:auto;box-shadow:0 3px 10px rgba(0,0,0,.25);color:var(--wpfm-dark-color);text-align:center;padding:10px;border-radius:6px;position:absolute;z-index:1;opacity:0;transition:opacity 1s;cursor:default}.wpfm-tooltip.wpfm-tooltip-left .wpfm-tooltiptext{top:-5px;right:105%}.wpfm-tooltip.wpfm-tooltip-right .wpfm-tooltiptext{top:-5px;left:105%}.wpfm-tooltip.wpfm-tooltip-top .wpfm-tooltiptext{bottom:100%;left:50%;transform:translate(-50%,0)}.wpfm-tooltip.wpfm-tooltip-bottom .wpfm-tooltiptext{top:100%;left:50%;transform:translate(-50%,0)}.wpfm-tooltip:hover .wpfm-tooltiptext{visibility:visible;opacity:1}table.wpfm-responsive-table-wrapper{font-size:14px;font-weight:500;color:var(--wpfm-gray-color);border:1px solid var(--wpfm-gray-border-color)}table.wpfm-responsive-table-wrapper thead th{border-top:none}table.wpfm-responsive-table-wrapper thead th.wpfm-heading-text{border-bottom:1px solid var(--wpfm-gray-border-color);padding:15px;font-weight:500;color:var(--wpfm-dark-color);text-align:left;text-transform:none;border:none;word-break:inherit}table.wpfm-responsive-table-wrapper thead th:first-child{padding-left:15px}table.wpfm-responsive-table-wrapper tbody tr{background:var(--wpfm-white-color);border-top:1px solid var(--wpfm-gray-bg-color)}table.wpfm-responsive-table-wrapper tbody tr:nth-child(2n) .food_categories span.food-category{background:#f0f0f0}table.wpfm-responsive-table-wrapper tbody tr td{padding:10px;border:none}table.wpfm-responsive-table-wrapper tbody tr td a{color:var(--wpfm-primary-color);word-break:break-word}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn{display:inline-block;margin:2px;height:30px;width:30px;position:relative}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a{height:30px;width:30px;display:inline-block;text-align:center;line-height:normal;font-size:0;position:absolute;left:0;top:0}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a::before{content:"";position:absolute;left:0;top:0;height:30px;width:30px;font-family:wp-food-manager;text-align:center;line-height:30px;font-size:16px}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a.food-dashboard-action-edit::before{content:"\e906"}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a.food-dashboard-action-relist::before{content:"\ea2e"}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a.food-dashboard-action-mark_not_cancelled::before{content:"\ea52"}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a.food-dashboard-action-mark_cancelled::before{content:"\ea53"}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a.food-dashboard-action-duplicate::before{content:"\e92c"}table.wpfm-responsive-table-wrapper tbody tr td .wpfm-dboard-food-action .wpfm-dboard-food-act-btn a.food-dashboard-action-delete::before{content:"\e9ad"}.wpfm-responsive-table-block{overflow:auto;border:1px solid var(--wpfm-gray-bg-color);margin-bottom:25px}.wpfm-responsive-table-block table.wpfm-responsive-table-wrapper{border:none;margin:0}#food-manager-food-dashboard table td.food_title{display:flex;column-gap:15px;align-items:center;width:270px}.wpfm-single-food-menu-category-banner{position:relative;width:100%;overflow:hidden;border-radius:4px;line-height:0;margin-bottom:10px}.wpfm-single-food-menu-category-banner img{height:260px;width:100%;object-fit:cover;border-radius:4px}.wpfm-single-food-menu-category-banner .wpfm-single-food-menu-category-title{position:absolute;left:0;bottom:0;margin:auto 0;text-align:center;padding:15px;background:rgb(0 0 0 / 50%);font-size:20px;color:var(--wpfm-white-color);width:100%;line-height:normal;word-break:break-all}.parent-organic-tag:hover::before,span.wpfm-front-radio-icon:hover:before{content:attr(data-icon-type);position:absolute;right:calc(100% + 5px);background:var(--wpfm-dark-color);color:var(--wpfm-white-color);font-size:11px;border-radius:4px;top:0;padding:3px 6px;z-index:9;width:auto;min-width:70px;text-align:center}.parent-organic-tag:hover::after,span.wpfm-front-radio-icon:hover:after{content:'';background:var(--wpfm-dark-color);height:9px;width:9px;position:absolute;transform:rotate(45deg);top:6px;right:100%}span.wpfm-front-radio-icon{display:inline-block;vertical-align:top;position:relative;cursor:pointer}span.wpfm-front-radio-icon:hover:before{content:attr(data-food-menu);left:calc(100% + 10px)}span.wpfm-front-radio-icon:hover:after{left:calc(100% - -6px);top:calc(50% - 5px)}span.fm-divider{position:absolute;left:0;right:0;text-align:center}.fm-food-menu-container{display:flex;flex-wrap:wrap;margin:0 -10px}.fm-food-menu-container .food-list-box{background:var(--wpfm-gray-bg-color);color:var(--wpfm-dark-color);vertical-align:top;margin:10px;padding:15px;font-size:14px;border-radius:4px;position:relative;transition:.2s;width:calc(50% - 20px)}.fm-food-menu-container .food-list-box:hover{box-shadow:0 0 10px rgba(0,0,0,.1);background-color:var(--wpfm-white-color);color:var(--wpfm-dark-color)}.fm-food-menu-container .food-list-box .fm-food-menu-title strong{display:block;font-size:18px}.fm-food-menu-container .food-list-box .fm-food-menu-pricing{white-space:nowrap;margin-bottom:10px;margin-top:5px;display:flex;align-items:center}.fm-food-menu-container .food-list-box .fm-food-menu-pricing ins{display:block;color:var(--wpfm-primary-color);font-size:18px;margin-left:5px}.fm-food-menu-container .food-list-box .fm-food-menu-pricing del{color:var(--wpfm-gray-color);font-weight:500;font-size:14px}.fm-food-menu-desc,.fm-food-menu-title strong{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.wpfm-single-food-menu-page .wpfm-single-food-image img{max-width:100%;width:100%}.wpfm-accordion-item{border:1px solid var(--wpfm-gray-border-color);padding:15px 15px 5px;margin-top:-1px;border-radius:4px;margin-bottom:15px}.wpfm-accordion-item .wpfm-accordion-action{cursor:pointer;font-weight:500;position:relative;padding-right:40px;padding-bottom:10px}.wpfm-accordion-item .wpfm-accordion-action:after{content:"\ea0a";font-family:wpfm-restaurant-manager;font-size:10px;font-weight:400;width:24px;height:24px;background-color:var(--wpfm-gray-bg-color);border-radius:100px;display:flex;align-items:center;justify-content:center;position:absolute;right:0;top:0}.wpfm-accordion-item-show .wpfm-accordion-action:after{content:"\ea0b"}.wpfm-accordion-item.wpfm-accordion-item-show{box-shadow:0 0 10px rgb(0 0 0 / 10%)}.wpfm-single-food-page .wpfm-single-food-body-content .wpfm-food-ingredients .wpfm-heading-text,.wpfm-single-food-page .wpfm-single-food-body-content .wpfm-food-nutritions .wpfm-heading-text{font-size:18px;margin-bottom:10px!important}.wpfm-single-food-page .wpfm-single-food-body-content .wpfm-food-ingredients span.food-ingredients,.wpfm-single-food-page .wpfm-single-food-body-content .wpfm-food-nutritions span.food-nutritions{background:var(--wpfm-gray-bg-color);padding:5px 10px;border-radius:5px;font-size:15px;line-height:20px;display:inline-block;margin:0 5px 5px 0}.wpfm-additional-file-slider .wpfm-icon{border:2px solid var(--wpfm-gray-border-color);padding:10px;border-radius:4px;margin:5px 1px}.wpfm-front-radio-icon span.wpfm-menu{margin-left:10px;font-size:20px;border-radius:4px;border:1px solid var(--wpfm-dark-color);width:36px;height:36px;text-align:center;line-height:34px;display:inline-block}.wpfm-input-description{color:var(--wpfm-gray-color);font-size:13px;display:block;overflow:hidden;position:relative;top:-3px;padding-bottom:10px}.food-stock-status mark.fm_outofstock{padding:3px 5px 2px;font-size:12px;display:inline-block;vertical-align:top;background:#f74747;color:var(--wpfm-white-color);border-radius:2px}small.wpfm-food-status-pending-approval{font-weight:400;display:inline-block;margin:3px 0 3px 5px;padding:3px 8px;font-size:13px;border-radius:2px;background:#fff4d7;color:#6b4e00}mark.fm_instock{background:0 0;color:#7ad03a}.parent-organic-tag{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 20px;margin:5px}ul.food-manager-term-checklist{list-style:none;padding:10px 15px;margin-left:0;border:2px solid var(--wpfm-gray-border-color);border-radius:5px}.wpfm-with-bg-image-row{display:inline-block;vertical-align:top;margin-bottom:2rem;width:100%}.wpfm-with-bg-image-row p{text-align:left;padding:20px;background:var(--wpfm-gray-border-color);border-radius:4px}img.wpfm-organic-tag-icon{width:20px;height:20px;object-fit:cover}.ui-autocomplete{list-style:none;padding-left:10px;margin:0;position:absolute!important}@media screen and (max-width:1024px){.wpfm-single-food-page .wpfm-single-food-body .wpfm-single-food-left-content{max-width:60%;flex:0 0 60%}.wpfm-single-food-page .wpfm-single-food-body .wpfm-single-food-right-content,.wpfm-single-food-page .wpfm-single-food-header-top .wpfm-single-food-short-info{max-width:40%;flex:0 0 40%}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-single-image-wrapper .wpfm-food-single-image img{height:400px;width:100%}}@media screen and (min-width:993px){#food-manager-food-dashboard table td .parent-organic-tag:hover::before,#food-manager-food-dashboard table td span.wpfm-front-radio-icon:hover:before{right:inherit;left:calc(100% + 5px)}#food-manager-food-dashboard table td .parent-organic-tag:hover::after,#food-manager-food-dashboard table td span.wpfm-front-radio-icon:hover:after{left:100%;right:inherit}}@media screen and (max-width:992px){table.wpfm-responsive-table-wrapper{border:none}table.wpfm-responsive-table-wrapper,table.wpfm-responsive-table-wrapper tbody,table.wpfm-responsive-table-wrapper td,table.wpfm-responsive-table-wrapper th,table.wpfm-responsive-table-wrapper thead,table.wpfm-responsive-table-wrapper tr{display:block}table.wpfm-responsive-table-wrapper thead tr{position:absolute;top:-9999px;left:-9999px}table.wpfm-responsive-table-wrapper tr{border:1px solid var(--wpfm-gray-border-color)}table.wpfm-responsive-table-wrapper td{border:none;border-bottom:1px solid #eee;position:relative;padding-left:50%!important;white-space:normal;text-align:left}table.wpfm-responsive-table-wrapper td:before{position:absolute;top:15px;left:16px;width:45%;padding-right:10px;white-space:normal;text-align:left;font-weight:600;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;max-height:52px;line-height:20px;-webkit-line-clamp:2;-webkit-box-orient:vertical;content:attr(data-title)}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content::after,table.wpfm-responsive-table-wrapper .wpfm-tbody-th-label{display:none}.wpfm-single-food-page .wpfm-single-food-body .wpfm-single-food-left-content,.wpfm-single-food-page .wpfm-single-food-body .wpfm-single-food-right-content,.wpfm-single-food-page .wpfm-single-food-header-top .wpfm-single-food-images,.wpfm-single-food-page .wpfm-single-food-header-top .wpfm-single-food-short-info{max-width:100%;flex:0 0 100%}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-single-image-wrapper .wpfm-food-single-image img{height:auto;width:100%}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider .wpfm-slider-items img{height:450px;width:100%}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-short-info{padding:25px 35px}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-details{width:100%;margin-bottom:0}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-food-details .wpfm-food-title{margin-bottom:0}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-body-sidebar,.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-body .wpfm-single-food-left-content .wpfm-single-food-body-content{padding:20px}.food_listing_preview_title{margin:0}.food_listing_preview_title .food-manager-button-edit-listing,.food_listing_preview_title .food-manager-button-submit-listing{margin:0 auto;max-width:200px;width:100%}.food_listing_preview_title h2{margin:10px 20px;width:100%}#food-manager-food-dashboard table td.food_title{width:inherit}table.wpfm-responsive-table-wrapper td.wpfm_data_td_empty{padding:10px!important}}@media screen and (max-width:768px){.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider .wpfm-slider-items img{height:400px;width:100%}.wpfm-single-food-page .wpfm-single-food-sidebar-info{margin-bottom:0}.wpfm-single-food-page .wpfm-share-this-food{margin-top:20px}.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar .wpfm-theme-button,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar a.wpfm-theme-button,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar button.wpfm-theme-button,.wpfm-single-food-page .wpfm-single-food-right-content .wpfm-single-food-body-sidebar input.wpfm-theme-button{padding:15px}.wpfm-tabs-wrapper .wpfm-tabs-wrap{display:inline-block;width:100%}.wpfm-tabs-wrapper .wpfm-tabs-wrap .wpfm-tab-link{border-top:1px solid var(--wpfm-gray-border-color)}.wpfm-tabs-wrapper .wpfm-tabs-wrap .wpfm-tab-link:first-child{border-top:0}.fm-food-menu-container,.wpfm-dashboard-main-header .wpfm-foods-filter{flex-direction:column}.fm-food-menu-container .food-list-box{width:calc(100% - 20px)}.wpfm-dashboard-main-header .wpfm-foods-filter .wpfm-foods-filter-block.wpfm-foods-filter-submit{width:100%}.woocommerce table.shop_table_responsive tr.cart-page td::before{display:none!important}}@media screen and (max-width:575px){.wpfm-form-wrapper .wpfm-col{width:100%;flex:unset}.wpfm-form-wrapper .filter_wide.filter_by_tag{text-align:center}.wpfm-form-wrapper .filter_wide.filter_by_tag .filter_by_tag_cloud{margin-top:5px}.wpfm-form-wrapper .filter_wide.filter_by_tag .filter_by_tag_cloud .tag-cloud-link{margin:2px}.wpfm-form-wrapper .showing_applied_filters{text-align:center;line-height:18px;padding:5px 10px}.wpfm-form-wrapper .showing_applied_filters a{float:none;margin:7px}.wpfm-food-listings-header .wpfm-food-listing-header-title .wpfm-heading-text{text-align:center;margin-bottom:10px}.wpfm-food-listings-header .wpfm-food-layout-action-wrapper .wpfm-food-layout-action{margin:auto;width:100%;border-radius:5px;overflow:hidden;justify-content:center}.wpfm-food-listings-header .wpfm-food-layout-action-wrapper .wpfm-food-layout-action .wpfm-food-layout-icon{height:35px;line-height:35px;width:33.3%;margin:0;border-radius:0}.wpfm-single-food-page .wpfm-single-food-wrapper .wpfm-single-food-header-top .wpfm-single-food-slider-wrapper .wpfm-single-food-slider .wpfm-slider-items img{height:300px;width:100%}.food-manager-pagination ul.page-numbers{display:inline-block;text-align:center}.food-manager-pagination ul.page-numbers li{padding:3px}.food-manager-pagination ul.page-numbers li .page-numbers{margin:0}#food-manager-food-dashboard table td.food_title{display:block}#food-manager-food-dashboard table td .parent-organic-tag{justify-content:start;margin-top:10px}small.wpfm-food-status-pending-approval{margin-top:10px}}.woocommerce .woocommerce-cart-form .shop_table .cart-page td{text-align:left!important} -
wp-food-manager/trunk/assets/js/accounting/accounting.js
r2902336 r3022874 1 1 /*! 2 2 * accounting.js v0.4.2 3 * Copyright 2014 Open Exchange Rates 3 * Copyright 2014 Open Exchange Rates. 4 4 * 5 5 * Freely distributable under the MIT license. 6 * Portions of accounting.js are inspired or borrowed from underscore.js 6 * Portions of accounting.js are inspired or borrowed from underscore.js. 7 7 * 8 8 * Full details and documentation: … … 14 14 /* --- Setup --- */ 15 15 16 // Create the local library object, to be exported or referenced globally later 16 // Create the local library object, to be exported or referenced globally later. 17 17 var lib = {}; 18 18 19 // Current version 19 // Current version. 20 20 lib.version = '0.4.1'; 21 21 … … 23 23 /* --- Exposed settings --- */ 24 24 25 // The library's settings configuration object. Contains default parameters for 26 // currency and number formatting 25 // The library's settings configuration object. Contains default parameters for currency and number formatting. 27 26 lib.settings = { 28 27 currency: { 29 symbol : "$", // default currency symbol is '$' 30 format : "%s%v", // controls output: %s = symbol, %v = value (can be object, see docs) 31 decimal : ".", // decimal point separator 32 thousand : ",", // thousands separator 33 precision : 2, // decimal places 34 grouping : 3 // digit grouping (not implemented yet) 28 symbol : "$", // default currency symbol is '$'. 29 format : "%s%v", // controls output: %s = symbol, %v = value (can be object, see docs). 30 decimal : ".", // decimal point separator. 31 thousand : ",", // thousands separator. 32 precision : 2, // decimal places. 33 grouping : 3 // digit grouping (not implemented yet). 35 34 }, 36 35 number: { 37 precision : 0, // default precision on numbers is 0 38 grouping : 3, // digit grouping (not implemented yet) 36 precision : 0, // default precision on numbers is 0. 37 grouping : 3, // digit grouping (not implemented yet). 39 38 thousand : ",", 40 39 decimal : "." … … 45 44 /* --- Internal Helper Methods --- */ 46 45 47 // Store reference to possibly-available ECMAScript 5 methods for later 46 // Store reference to possibly-available ECMAScript 5 methods for later. 48 47 var nativeMap = Array.prototype.map, 49 48 nativeIsArray = Array.isArray, … … 51 50 52 51 /** 53 * Tests whether supplied parameter is a string 54 * from underscore.js 52 * Tests whether supplied parameter is a string. 53 * from underscore.js. 55 54 */ 56 55 function isString(obj) { … … 59 58 60 59 /** 61 * Tests whether supplied parameter is a string 62 * from underscore.js, delegates to ECMA5's native Array.isArray 60 * Tests whether supplied parameter is a string. 61 * from underscore.js, delegates to ECMA5's native Array.isArray. 63 62 */ 64 63 function isArray(obj) { … … 67 66 68 67 /** 69 * Tests whether supplied parameter is a true object 68 * Tests whether supplied parameter is a true object. 70 69 */ 71 70 function isObject(obj) { … … 74 73 75 74 /** 76 * Extends an object with a defaults object, similar to underscore's _.defaults 77 * 78 * Used for abstracting parameter handling from API methods 75 * Extends an object with a defaults object, similar to underscore's _.defaults. 76 * 77 * Used for abstracting parameter handling from API methods. 79 78 */ 80 79 function defaults(object, defs) { … … 93 92 94 93 /** 95 * Implementation of `Array.map()` for iteration loops 94 * Implementation of `Array.map()` for iteration loops. 96 95 * 97 96 * Returns a new Array as a result of calling `iterator` on each array value. 98 * Defers to native Array.map if available 97 * Defers to native Array.map if available. 99 98 */ 100 99 function map(obj, iterator, context) { … … 114 113 115 114 /** 116 * Check and normalise the value of precision (must be positive integer) 115 * Check and normalise the value of precision (must be positive integer). 117 116 */ 118 117 function checkPrecision(val, base) { … … 123 122 124 123 /** 125 * Parses a format string or object and returns format obj for use in rendering 126 * 127 * `format` is either a string with the default (positive) format, or object 128 * containing `pos` (required), `neg` and `zero` values (or a function returning 129 * either a string or object) 130 * 124 * Parses a format string or object and returns format obj for use in rendering `format` is either a string with the default (positive) format, or object containing `pos` (required), `neg` and `zero` values (or a function returning either a string or object). 131 125 * Either string or format.pos must contain "%v" (value) to be valid 132 126 */ … … 166 160 167 161 /** 168 * Takes a string/array of strings, removes all formatting/cruft and returns the raw float value 169 * Alias: `accounting.parse(string)` 170 * 171 * Decimal must be included in the regular expression to match floats (defaults to 172 * accounting.settings.number.decimal), so if the number uses a non-standard decimal 173 * separator, provide it as the second argument. 174 * 175 * Also matches bracketed negatives (eg. "$ (1.99)" => -1.99) 176 * 162 * Takes a string/array of strings, removes all formatting/cruft and returns the raw float value. 163 * Alias: `accounting.parse(string)`. 164 * Decimal must be included in the regular expression to match floats (defaults to accounting.settings.number.decimal), so if the number uses a non-standard decimal separator, provide it as the second argument. Also, matches bracketed negatives (eg. "$ (1.99)" => -1.99). 177 165 * Doesn't throw any errors (`NaN`s become 0) but this may change in future 178 166 */ … … 198 186 unformatted = parseFloat( 199 187 ("" + value) 200 .replace(/\((.*)\)/, "-$1") // replace bracketed values with negatives 201 .replace(regex, '') // strip out any cruft 202 .replace(decimal, '.') // make sure decimal point is standard 188 .replace(/\((.*)\)/, "-$1") // replace bracketed values with negatives. 189 .replace(regex, '') // strip out any cruft. 190 .replace(decimal, '.') // make sure decimal point is standard. 203 191 ); 204 192 … … 209 197 210 198 /** 211 * Implementation of toFixed() that treats floats more like decimals 212 * 213 * Fixes binary rounding issues (eg. (0.615).toFixed(2) === "0.61") that present 214 * problems for accounting- and finance-related software. 199 * Implementation of toFixed() that treats floats more like decimals. 200 * Fixes binary rounding issues (eg. (0.615).toFixed(2) === "0.61") that present problems for accounting- and finance-related software. 215 201 */ 216 202 var toFixed = lib.toFixed = function(value, precision) { … … 224 210 225 211 /** 226 * Format a number, with comma-separated thousands and custom precision/decimal places 227 * Alias: `accounting.format()` 228 * 229 * Localise by overriding the precision and thousand / decimal separators 230 * 2nd parameter `precision` can be an object matching `settings.number` 212 * Format a number, with comma-separated thousands and custom precision/decimal places. 213 * Alias: `accounting.format()`. 214 * 215 * Localise by overriding the precision and thousand / decimal separators. 216 * 2nd parameter `precision` can be an object matching `settings.number`. 231 217 */ 232 218 var formatNumber = lib.formatNumber = lib.format = function(number, precision, thousand, decimal) { … … 251 237 ), 252 238 253 // Clean up precision 239 // Clean up precision. 254 240 usePrecision = checkPrecision(opts.precision), 255 241 … … 267 253 * Format a number into currency 268 254 * 269 * Usage: accounting.formatMoney(number, symbol, precision, thousandsSep, decimalSep, format) 270 * defaults: (0, "$", 2, ",", ".", "%s%v") 271 * 272 * Localise by overriding the symbol, precision, thousand / decimal separators and format 255 * Usage: accounting.formatMoney(number, symbol, precision, thousandsSep, decimalSep, format). 256 * defaults: (0, "$", 2, ",", ".", "%s%v"). 257 * 258 * Localise by overriding the symbol, precision, thousand / decimal separators and format. 273 259 * Second param can be an object matching `settings.currency` which is the easiest way. 274 260 * 275 * To do: tidy up the parameters 261 * To do: tidy up the parameters. 276 262 */ 277 263 var formatMoney = lib.formatMoney = function(number, symbol, precision, thousand, decimal, format) { … … 310 296 311 297 /** 312 * Format a list of numbers into an accounting column, padding with whitespace 313 * to line up currency symbols, thousand separators and decimals places 314 * 315 * List should be an array of numbers 316 * Second parameter can be an object containing keys that match the params 317 * 318 * Returns array of accouting-formatted number strings of same length 319 * 320 * NB: `white-space:pre` CSS rule is required on the list container to prevent 298 * Format a list of numbers into an accounting column, padding with whitespace to line up currency symbols, thousand separators and decimals places. 299 * 300 * List should be an array of numbers. 301 * Second parameter can be an object containing keys that match the params. 302 * 303 * Returns array of accouting-formatted number strings of same length. 304 * 305 * NB: `white-space:pre` CSS rule is required on the list container to prevent. 321 306 * browsers from collapsing the whitespace in the output strings. 322 307 */ … … 351 336 return lib.formatColumn(val, opts); 352 337 } else { 353 // Clean up the value 338 // Clean up the value. 354 339 val = unformat(val); 355 340 … … 380 365 381 366 // Export accounting for CommonJS. If being loaded as an AMD module, define it as such. 382 // Otherwise, just add `accounting` to the global object 367 // Otherwise, just add `accounting` to the global object. 383 368 if (typeof exports !== 'undefined') { 384 369 if (typeof module !== 'undefined' && module.exports) { -
wp-food-manager/trunk/assets/js/admin-settings.js
r2902336 r3022874 9 9 /// <since>1.0.0</since> 10 10 init: function () { 11 // Bind on click food of the settings section 11 // Bind on click food of the settings section. 12 12 jQuery(".food-manager-settings-wrap .nav-tab-wrapper a").on('click', WPFM_AdminSettings.actions.tabClick); 13 // Show by default first food Listings Settings Tab 13 // Show by default first food Listings Settings Tab. 14 14 jQuery('.food-manager-settings-wrap .nav-tab-wrapper a:first').click(); 15 15 }, -
wp-food-manager/trunk/assets/js/admin.js
r2914276 r3022874 2 2 /// <summary>Constructor function of the food settings class.</summary> 3 3 /// <returns type="WPFM_Admin" /> 4 // Uploading files 4 // Uploading files. 5 5 var file_frame; 6 6 var file_target_input; … … 9 9 ///<summary> 10 10 ///Initializes the AdminSettings. 11 ///</summary> 11 ///</summary> 12 12 ///<returns type="initialization AdminSettings" /> 13 13 /// <since>1.0.0</since> … … 21 21 return jQuery(this).closest(".food-manager-uploaded-file").remove(); 22 22 }); 23 // if field type is date then load datepicker 23 // if field type is date then load datepicker. 24 24 if (jQuery('input[data-picker="datepicker"]').length > 0) { 25 25 if (wpfm_admin.show_past_date) { … … 52 52 }); 53 53 } 54 // Bind on click food of the settings section 54 // Bind on click food of the settings section. 55 55 jQuery(".wpfm-tabs li a").on('click', WPFM_Admin.actions.tabClick); 56 // Show by default first food Listings Settings Tab 56 // Show by default first food Listings Settings Tab. 57 57 jQuery('.wpfm-tabs li a:first').click(); 58 58 jQuery(document).on('change', '.wpfm-admin-menu-selection select.food-manager-category-dropdown', WPFM_Admin.actions.updateFoodinMenu); 59 // Use body to call after dom update 59 // Use body to call after dom update. 60 60 jQuery("body").on('click', 'a.wpfm-food-item-remove', WPFM_Admin.actions.removeFoodItem); 61 // Sortable 61 // Sortable. 62 62 jQuery('.wpfm-admin-food-menu-items ul.wpfm-food-menu').sortable(); 63 // File upload 63 // File upload. 64 64 jQuery('body').on('click', '.wp_food_manager_upload_file_button_multiple', WPFM_Admin.fileUpload.multipleFile); 65 65 jQuery('body').on('click', '.wp_food_manager_upload_file_button', WPFM_Admin.fileUpload.addFile); 66 66 jQuery(".wp_food_manager_add_another_file_button").on('click', WPFM_Admin.fileUpload.addAnotherFile); 67 // Food extra options 67 // Food extra options. 68 68 jQuery('#wpfm-add-new-option').on('click', WPFM_Admin.actions.addNewOption); 69 69 jQuery(document).on("click", ".wpfm-togglediv", function (e) { … … 175 175 l = l + "<option value='" + t + "'>" + e + "</option>" 176 176 })); 177 var s = "<input type='number' step=' 0.1' name='food_ingredients[" + r + "][value]'><select name='food_ingredients[" + r + "][unit_id]'><option value=''>Unit</option>" + l + "</select>";177 var s = "<input type='number' step='any' name='food_ingredients[" + r + "][value]'><select name='food_ingredients[" + r + "][unit_id]'><option value=''>Unit</option>" + l + "</select>"; 178 178 n.find(".wpfm-sortable-item-values").html(s), n.removeClass("available-item").addClass("active-item") 179 179 } … … 245 245 l = l + "<option value='" + t + "'>" + e + "</option>" 246 246 })); 247 var s = "<input type='number' step=' 0.1' name='food_nutritions[" + r + "][value]'><select name='food_nutritions[" + r + "][unit_id]'><option value=''>Unit</option>" + l + "</select>";247 var s = "<input type='number' step='any' name='food_nutritions[" + r + "][value]'><select name='food_nutritions[" + r + "][unit_id]'><option value=''>Unit</option>" + l + "</select>"; 248 248 n.find(".wpfm-sortable-item-values").html(s), n.removeClass("available-item").addClass("active-item") 249 249 } … … 274 274 }, 275 275 /// <summary> 276 /// Click on category dropdown to update food menu 276 /// Click on category dropdown to update food menu. 277 277 /// </summary> 278 278 /// <param name="parent" type="Food"></param> … … 341 341 }, 342 342 /// <summary> 343 /// Remove food item from food menu 343 /// Remove food item from food menu. 344 344 /// </summary> 345 345 /// <param name="parent" type="food"></param> … … 361 361 }, 362 362 /// <summary> 363 /// add options 363 /// add options. 364 364 /// </summary> 365 365 /// <param name="parent" type="Event"></param> … … 419 419 }, 420 420 /// <summary> 421 /// updateOptionTitle 421 /// updateOptionTitle. 422 422 /// </summary> 423 423 /// <param name="parent" type="Event"></param> … … 435 435 }, 436 436 /// <summary> 437 /// changeFieldType 437 /// changeFieldType. 438 438 /// </summary> 439 439 /// <param name="parent" type="Event"></param> … … 453 453 }, 454 454 /// <summary> 455 /// addElementRow 455 /// addElementRow. 456 456 /// </summary> 457 457 /// <param name="parent" type="Event"></param> … … 468 468 }, 469 469 /// <summary> 470 /// add attributes fields 470 /// add attributes fields. 471 471 /// </summary> 472 472 /// <param name="parent" type="Event"></param> … … 487 487 }, 488 488 /// <summary> 489 /// add attributes fields 489 /// add attributes fields. 490 490 /// </summary> 491 491 /// <param name="parent" type="Event"></param> … … 500 500 }, 501 501 /// <summary> 502 /// add attributes fields 502 /// add attributes fields. 503 503 /// </summary> 504 504 /// <param name="parent" type="Event"></param> … … 535 535 text: jQuery(this).data('uploader_button_text'), 536 536 }, 537 multiple: false // Set to true to allow multiple files to be selected 537 multiple: false // Set to true to allow multiple files to be selected. 538 538 }); 539 539 // When an image is selected, run a callback. 540 540 file_frame.on('select', function () { 541 // We set multiple to false so only get one image from the uploader 541 // We set multiple to false so only get one image from the uploader. 542 542 attachment = file_frame.state().get('selection').first().toJSON(); 543 543 jQuery(file_target_input).val(attachment.url); … … 549 549 } 550 550 }); 551 // Finally, open the modal 551 // Finally, open the modal. 552 552 file_frame.open(); 553 553 }, … … 570 570 text: jQuery(this).data('uploader_button_text'), 571 571 }, 572 multiple: true // Set to true to allow multiple files to be selected 572 multiple: true // Set to true to allow multiple files to be selected. 573 573 }); 574 574 // When an image is selected, run a callback. 575 575 file_frame.on('select', function () { 576 // We set multiple to false so only get one image from the uploader 576 // We set multiple to false so only get one image from the uploader. 577 577 attachment = file_frame.state().get('selection').map( 578 578 function (attachment) { … … 589 589 }); 590 590 }); 591 // Finally, open the modal 591 // Finally, open the modal. 592 592 file_frame.open(); 593 593 }, … … 608 608 } 609 609 } 610 } //enf of return 611 }; //end of class 610 } //enf of return. 611 }; //end of class. 612 612 613 613 WPFM_Admin = WPFM_Admin(); -
wp-food-manager/trunk/assets/js/ajax-file-upload.js
r2902336 r3022874 24 24 var $uploaded_files = $file_field.parent().find('.food-manager-uploaded-files'); 25 25 var uploadErrors = []; 26 // Validate type 26 // Validate type. 27 27 var allowed_types = jQuery(this).data('file_types'); 28 28 if (allowed_types) { … … 83 83 }); 84 84 } 85 } //enf of return 86 }; //end of class 85 } //enf of return. 86 }; //end of class. 87 87 88 88 WPFM_AjaxFileUpload = WPFM_AjaxFileUpload(); -
wp-food-manager/trunk/assets/js/content-food-listing.js
r2902336 r3022874 15 15 if (jQuery('.wpfm-food-list-layout').length > 0 || jQuery('.wpfm-food-box-layout').length > 0) { 16 16 // With show_pagination attribute in shortcodes. e.g [foods per_page="10" show_pagination="true"] 17 // Check when user has changed page using pagination and then need to keep current selected layout 18 // When layout is box and user changed page using pagination then need to show line layout instead of line layout 17 // Check when user has changed page using pagination and then need to keep current selected layout. 18 // When layout is box and user changed page using pagination then need to show line layout instead of line layout . 19 19 if (localStorage.getItem("layout") == "line-layout") { 20 20 jQuery(".wpfm-food-box-col").show(); … … 133 133 } 134 134 } 135 } //enf of return 136 }; //end of class 135 } //enf of return. 136 }; //end of class. 137 137 138 138 WPFM_ContentFoodListing = WPFM_ContentFoodListing(); -
wp-food-manager/trunk/assets/js/field-editor.js
r2902336 r3022874 45 45 }, 46 46 /// <summary> 47 /// remove current field 47 /// remove current field. 48 48 /// </summary> 49 49 /// <returns type="initialization settings" /> … … 62 62 }, 63 63 ///<summary> 64 ///reset all fields 64 ///reset all fields. 65 65 ///</summary> 66 66 ///<returns type="initialization settings" /> … … 73 73 }, 74 74 /// <summary> 75 /// reset all fields 75 /// reset all fields. 76 76 /// </summary> 77 77 /// <returns type="initialization settings" /> … … 83 83 $tbody.append(row); 84 84 jQuery('.wp-food-manager-food-form-field-editor').trigger('init'); 85 jQuery('.delete-field').on('click', WPFM_FieldEditor.actions.deleteField); //delete field 85 jQuery('.delete-field').on('click', WPFM_FieldEditor.actions.deleteField); //delete field. 86 86 return false; 87 87 }, 88 88 /// <summary> 89 /// reset all fields 89 /// reset all fields. 90 90 /// </summary> 91 91 /// <returns type="initialization settings" /> … … 104 104 }, 105 105 /// <summary> 106 /// on change field type 106 /// on change field type. 107 107 /// </summary> 108 108 /// <returns type="initialization settings" /> -
wp-food-manager/trunk/assets/js/food-dashboard.js
r2902336 r3022874 12 12 if (jQuery('.food-dashboard-action-delete').length > 0 && jQuery('td .wpfm-dboard-food-action').length == 0) { 13 13 jQuery('.food-dashboard-action-delete').css({ 'cursor': 'pointer' }); 14 //for delete food confirmation dialog / tooltip 14 //for delete food confirmation dialog / tooltip . 15 15 jQuery('.food-dashboard-action-delete').on('click', WPFM_FoodDashboard.confirmation.showDialog); 16 16 } 17 // For Dashboard Menu Toggle 17 // For Dashboard Menu Toggle. 18 18 if (jQuery('.wpfm-main-vmenu-dashboard-sub-menu .wpfm-main-vmenu-dashboard-link').length > 0) { 19 19 jQuery('.wpfm-main-vmenu-dashboard-sub-menu .wpfm-main-vmenu-dashboard-submenu-ul').hide(); 20 20 jQuery('.wpfm-main-vmenu-dashboard-sub-menu .wpfm-main-vmenu-dashboard-link').on('click', WPFM_FoodDashboard.actions.openSubmenu); 21 21 } 22 // For Active Dashboard Menu Open 22 // For Active Dashboard Menu Open. 23 23 if (jQuery('.wpfm-main-vmenu-dashboard-sub-menu .wpfm-main-vmenu-dashboard-link-active').length > 0) { 24 24 jQuery('.wpfm-main-vmenu-dashboard-sub-menu .wpfm-main-vmenu-dashboard-link-active').trigger('click'); 25 25 } 26 // For food List Toggle 26 // For food List Toggle. 27 27 if (jQuery('#wpfm-dashboard-food-list-wrapper .wpfm-food-dashboard-information-toggle').length > 0) { 28 28 jQuery('#wpfm-dashboard-food-list-wrapper .wpfm-food-dashboard-information-toggle').hide(); … … 38 38 }); 39 39 } 40 // For Food Filter Toggle 40 // For Food Filter Toggle. 41 41 if (jQuery('.wpfm-dashboard-main-header .wpfm-food-dashboard-filter-toggle').length > 0) { 42 42 jQuery('.wpfm-dashboard-main-header .wpfm-food-dashboard-filter-toggle').hide(); … … 64 64 event.preventDefault(); 65 65 }, 66 },//end of comfirmation 66 },//end of comfirmation. 67 67 actions: { 68 68 openSubmenu: function (event) { … … 77 77 myToggle.toggleClass("wpfm-main-vmenu-caret-up wpfm-main-vmenu-caret-down"); 78 78 }, 79 }, //end of actions 80 } //enf of return 81 }; //end of class 79 }, //end of actions. 80 } //enf of return. 81 }; //end of class. 82 82 83 83 WPFM_FoodDashboard = WPFM_FoodDashboard(); -
wp-food-manager/trunk/assets/js/food-submission.js
r2902336 r3022874 14 14 return false; 15 15 }); 16 //add links for paid and free Group 16 //add links for paid and free Group. 17 17 jQuery('.add-group-row').on('click', WPFM_FoodSubmission.actions.addGroupField); 18 18 //delete groups … … 27 27 actions: { 28 28 /// <summary> 29 /// On click add link fields paid and free 29 /// On click add link fields paid and free. 30 30 //It will generate dynamic name and id for fields. 31 31 /// </summary> … … 49 49 }, 50 50 /// <summary> 51 /// Remove Paid and free fields 51 /// Remove Paid and free fields. 52 52 /// </summary> 53 53 /// <returns type="fields" /> … … 57 57 event.preventDefault(); 58 58 }, 59 } //end of action 60 } //enf of return 61 }; //end of class 59 } //end of action. 60 } //enf of return. 61 }; //end of class. 62 62 63 63 WPFM_FoodSubmission = WPFM_FoodSubmission(); -
wp-food-manager/trunk/assets/js/frontend.js
r2914276 r3022874 5 5 jQuery(".food-manager-post_type-dropdown").chosen({ search_contains: !0 }); 6 6 } 7 // For Extra Toppings view Toggle 7 // For Extra Toppings view Toggle. 8 8 if (jQuery('.wpfm-additional-main-row').length > 0) { 9 9 jQuery('.wpfm-additional-main-row').hide(); … … 16 16 17 17 jQuery(".wpfm-form-group.fieldset-topping_description").hide(); 18 //use body to call after dom update 18 //use body to call after dom update. 19 19 jQuery("body").on('click', 'a.wpfm-food-item-remove', WPFM_Frontend.actions.removeFoodItem); 20 20 … … 149 149 if (sale_price >= regular_price) { 150 150 jQuery(this).val(''); 151 } 152 }); 153 /* accordion */ 154 jQuery(".wpfm-accordion-action").click(function(e) { 155 if (jQuery(this).parent().hasClass("wpfm-accordion-item-show")) { 156 jQuery(this).parent().removeClass("wpfm-accordion-item-show"); 157 } else { 158 jQuery(".wpfm-accordion-item").removeClass("wpfm-accordion-item-show"); 159 jQuery(this).parent().addClass("wpfm-accordion-item-show"); 151 160 } 152 161 }); … … 259 268 WPFM_Frontend.init(); 260 269 }); 270 271 -
wp-food-manager/trunk/assets/js/frontend.min.js
r2914276 r3022874 1 var WPFM_Frontend=function(){return{init:function(){jQuery(".food-manager-post_type-dropdown").length>0&&jQuery(".food-manager-post_type-dropdown").chosen({search_contains:!0}),jQuery(".wpfm-additional-main-row").length>0&&(jQuery(".wpfm-additional-main-row").hide(),jQuery(".wpfm-view-more").click(function(){jQuery(this).text("View less -"==jQuery(this).text()?"View more +":"View less -"),jQuery(this).parent().find(".wpfm-additional-main-row").slideToggle()})),jQuery(".wpfm-form-group.fieldset-topping_description").hide(),jQuery("body").on("click","a.wpfm-food-item-remove",WPFM_Frontend.actions.removeFoodItem),jQuery("body").on("wpfm_add_error_tip",function(t,e,o){var i=e.position();0===e.parent().find(".wpfm_error_tip").length&&(e.after('<div class="wpfm_error_tip '+o+'">'+wpfm_accounting_params[o]+"</div>"),e.parent().find(".wpfm_error_tip").css("left",i.left+e.width()-e.width()/2-jQuery(".wpfm_error_tip").width()/2).css("top",i.top+e.height()).fadeIn("100"))}),jQuery("body").on("wpfm_remove_error_tip",function(t,e,o){e.parent().find(".wpfm_error_tip."+o).fadeOut("100",function(){jQuery(this).remove()})}),jQuery("body").on("click",function(){jQuery(".wpfm_error_tip").fadeOut("100",function(){jQuery(this).remove()})}),jQuery("body").on("blur","#_food_sale_price",function(){jQuery(".wpfm_error_tip").fadeOut("100",function(){jQuery(this).remove()})}),jQuery("body").on("keyup","#_food_sale_price",function(t,e){var o,i=jQuery(this);o=jQuery("#_food_price");var r=parseFloat(window.accounting.unformat(i.val())),n=parseFloat(window.accounting.unformat(o.val()));r>=n?jQuery(document.body).triggerHandler("wpfm_add_error_tip",[jQuery(this),"wpfm_sale_less_than_regular_error"]):jQuery(document.body).triggerHandler("wpfm_remove_error_tip",[jQuery(this),"wpfm_sale_less_than_regular_error"])}),jQuery("body").on("change","#_food_sale_price",function(){var t,e=jQuery(this);t=jQuery("#_food_price");var o=parseFloat(window.accounting.unformat(e.val())),i=parseFloat(window.accounting.unformat(t.val()));o>=i&&jQuery(this).val("")}),jQuery(document).on("click",".wpfm-add-row",WPFM_Frontend.actions.addElementRow),jQuery(document).on("click",".option-delete-btn",WPFM_Frontend.actions.removeAttributesOptions),jQuery(document).on("click",".wpfm-delete-btn",WPFM_Frontend.actions.removeAttributes),jQuery("#wpfm-add-new-option").on("click",WPFM_Frontend.actions.addNewOption),jQuery("body").on("change",'input[name^="topping_name"]',WPFM_Frontend.actions.updateOptionTitle),jQuery(document).on("click",".wpfm-togglediv",function(t){var e=jQuery(this).data("row-count");"true"===jQuery(t.currentTarget).attr("aria-expanded")?(jQuery(".wpfm-options-wrap.wpfm-options-box-"+e).removeClass("closed"),jQuery(this).attr("aria-expanded","false")):(jQuery(".wpfm-options-wrap.wpfm-options-box-"+e).addClass("closed"),jQuery(this).attr("aria-expanded","true")),jQuery(this).parents(".postbox").find(".wpfm-options-box").slideToggle("slow")}),jQuery(".container .wpfm-form-wrapper table.widefat tbody").sortable({connectWith:".container .wpfm-form-wrapper table.widefat tbody",items:"tr",axis:"y",placeholder:"placeholder",opacity:.65,update:function(t,e){var o=jQuery(this).closest(".postbox").children(".repeated-options").val();jQuery(".container .wpfm-form-group.fieldset_topping_options_"+o+" table.widefat tbody tr").each(function(t){var e=t+1;jQuery(this).children("td:nth-child(2)").html(e),jQuery(this).attr("class","option-tr-"+e),jQuery(this).children(".option-value-class").val(e),jQuery(this).children("td").children(".opt_name").attr("name",o+"_option_name_"+e),jQuery(this).children("td").children(".opt_price").attr("name",o+"_option_price_"+e),jQuery(this).children("td").children(".option-delete-btn").attr("data-id",e)})}}).disableSelection(),jQuery("body").on("wpfm_add_error_tip",function(t,e,o){var i=e.position();0===e.parent().find(".wpfm_error_tip").length&&(e.after('<div class="wpfm_error_tip '+o+'">'+wpfm_accounting_params[o]+"</div>"),e.parent().find(".wpfm_error_tip").css("left",i.left+e.width()-e.width()/2-jQuery(".wpfm_error_tip").width()/2).css("top",i.top+e.height()).fadeIn("100"))}),jQuery("body").on("wpfm_remove_error_tip",function(t,e,o){e.parent().find(".wpfm_error_tip."+o).fadeOut("100",function(){jQuery(this).remove()})}),jQuery("body").on("click",function(){jQuery(".wpfm_error_tip").fadeOut("100",function(){jQuery(this).remove()})}),jQuery("body").on("blur","#food_sale_price",function(){jQuery(".wpfm_error_tip").fadeOut("100",function(){jQuery(this).remove()})}),jQuery("body").on("keyup","#food_sale_price",function(t,e){var o,i=jQuery(this);o=jQuery("#food_price");var r=parseFloat(window.accounting.unformat(i.val())),n=parseFloat(window.accounting.unformat(o.val()));r>=n?jQuery(document.body).triggerHandler("wpfm_add_error_tip",[jQuery(this),"wpfm_sale_less_than_regular_error"]):jQuery(document.body).triggerHandler("wpfm_remove_error_tip",[jQuery(this),"wpfm_sale_less_than_regular_error"])}),jQuery("body").on("change","#food_sale_price",function(){var t,e=jQuery(this);t=jQuery("#food_price");var o=parseFloat(window.accounting.unformat(e.val())),i=parseFloat(window.accounting.unformat(t.val()));o>=i&&jQuery(this).val("")}) },actions:{removeFoodItem:function(t){jQuery(this).parents("li").remove()},addElementRow:function(t){var e=0;e=jQuery(this).parents("table").find("tbody tr").length,e+=1;var o=jQuery(this).closest(".postbox").children(".repeated-options").val(),i=jQuery(this).data("row").replace(/%%repeated-option-index3%%/g,e).replace(/%%repeated-option-index2%%/g,o);i.replace('value="1"',e),jQuery(this).parents("table").find("tbody").append(i)},removeAttributesOptions:function(t){var e=jQuery(this).closest(".postbox").children(".repeated-options").val();jQuery(".wpfm-options-box-"+e+" tbody tr.option-tr-"+jQuery(this).data("id")).remove()},removeAttributes:function(t){jQuery(".wpfm-options-box-"+jQuery(this).data("id")).remove()},updateOptionTitle:function(t){jQuery(this).closest(".postbox").children("h3").children(".attribute_name").text(this.value);var e=this.value.replace(/\s/g,"_").toLowerCase();jQuery(this).closest(".postbox").children("h3").children(".attribute_key").children("input").val(e),""==this.value&&(jQuery(this).closest(".postbox").children("h3").children(".attribute_name").text("Option Key"),jQuery(this).closest(".postbox").children("h3").children(".attribute_key").children("input").val("topping_key"))},addNewOption:function(t){var e=0;jQuery(".wpfm-form-wrapper").find("div.wpfm-options-wrap").length&&jQuery(".wpfm-form-wrapper").find("div.wpfm-options-wrap").each(function(){e++}),e+=1;var o=jQuery(this).data("row").replace(/__repeated-option-index__/g,e).replace(/%repeated-option-index%/g,e);jQuery(".wpfm-form-wrapper .wpfm-actions").before(o),jQuery(".container .wpfm-form-wrapper table.widefat tbody").sortable({connectWith:".container .wpfm-form-wrapper table.widefat tbody",items:"tr",axis:"y",placeholder:"placeholder",opacity:.65,update:function(t,e){var o=jQuery(this).closest(".postbox").children(".repeated-options").val();jQuery(".container .wpfm-form-group.fieldset_topping_options_"+o+" table.widefat tbody tr").each(function(t){var e=t+1;jQuery(this).children("td:nth-child(2)").html(e),jQuery(this).attr("class","option-tr-"+e),jQuery(this).children(".option-value-class").val(e),jQuery(this).children("td").children(".opt_name").attr("name",o+"_option_name_"+e),jQuery(this).children("td").children(".opt_price").attr("name",o+"_option_price_"+e),jQuery(this).children("td").children(".option-delete-btn").attr("data-id",e)})}}).disableSelection(),jQuery('input[data-picker="datepicker"]').length>0&&(wpfm_food_submission.show_past_date?jQuery('input[data-picker="datepicker"]').datepicker({dateFormat:wpfm_food_submission.i18n_datepicker_format,firstDay:wpfm_food_submission.start_of_week,monthNames:wpfm_food_submission.monthNames}):jQuery('input[data-picker="datepicker"]').datepicker({minDate:0,dateFormat:wpfm_food_submission.i18n_datepicker_format,firstDay:wpfm_food_submission.start_of_week,monthNames:wpfm_food_submission.monthNames})),jQuery(".food-manager-multiselect").chosen({search_contains:!0}),jQuery(this).parents(".wpfm-options-wrapper").children(".wpfm-options-wrap").length;var i=fieldLabel=jQuery(this).parents(".wpfm-options-wrapper").children(".wpfm-options-wrap").find("fieldset.wpfm-form-group.wp-editor-field").last().attr("data-field-name");wp.editor.initialize(i,{tinymce:{wpautop:!1,textarea_rows:8,plugins:"lists,paste,tabfocus,wplink,wordpress",toolbar1:"bold,italic,|,bullist,numlist,|,link,unlink,|,undo,redo",toolbar2:"",paste_as_text:!0,paste_auto_cleanup_on_paste:!0,paste_remove_spans:!0,paste_remove_styles:!0,paste_remove_styles_if_webkit:!0,paste_strip_class_attributes:!0},quicktags:!1,mediaButtons:!1})}}}};WPFM_Frontend=WPFM_Frontend(),jQuery(document).ready(function(t){WPFM_Frontend.init()});1 var WPFM_Frontend=function(){return{init:function(){jQuery(".food-manager-post_type-dropdown").length>0&&jQuery(".food-manager-post_type-dropdown").chosen({search_contains:!0}),jQuery(".wpfm-additional-main-row").length>0&&(jQuery(".wpfm-additional-main-row").hide(),jQuery(".wpfm-view-more").click(function(){jQuery(this).text("View less -"==jQuery(this).text()?"View more +":"View less -"),jQuery(this).parent().find(".wpfm-additional-main-row").slideToggle()})),jQuery(".wpfm-form-group.fieldset-topping_description").hide(),jQuery("body").on("click","a.wpfm-food-item-remove",WPFM_Frontend.actions.removeFoodItem),jQuery("body").on("wpfm_add_error_tip",function(t,e,o){var i=e.position();0===e.parent().find(".wpfm_error_tip").length&&(e.after('<div class="wpfm_error_tip '+o+'">'+wpfm_accounting_params[o]+"</div>"),e.parent().find(".wpfm_error_tip").css("left",i.left+e.width()-e.width()/2-jQuery(".wpfm_error_tip").width()/2).css("top",i.top+e.height()).fadeIn("100"))}),jQuery("body").on("wpfm_remove_error_tip",function(t,e,o){e.parent().find(".wpfm_error_tip."+o).fadeOut("100",function(){jQuery(this).remove()})}),jQuery("body").on("click",function(){jQuery(".wpfm_error_tip").fadeOut("100",function(){jQuery(this).remove()})}),jQuery("body").on("blur","#_food_sale_price",function(){jQuery(".wpfm_error_tip").fadeOut("100",function(){jQuery(this).remove()})}),jQuery("body").on("keyup","#_food_sale_price",function(t,e){var o,i=jQuery(this);o=jQuery("#_food_price");var r=parseFloat(window.accounting.unformat(i.val())),n=parseFloat(window.accounting.unformat(o.val()));r>=n?jQuery(document.body).triggerHandler("wpfm_add_error_tip",[jQuery(this),"wpfm_sale_less_than_regular_error"]):jQuery(document.body).triggerHandler("wpfm_remove_error_tip",[jQuery(this),"wpfm_sale_less_than_regular_error"])}),jQuery("body").on("change","#_food_sale_price",function(){var t,e=jQuery(this);t=jQuery("#_food_price");var o=parseFloat(window.accounting.unformat(e.val())),i=parseFloat(window.accounting.unformat(t.val()));o>=i&&jQuery(this).val("")}),jQuery(document).on("click",".wpfm-add-row",WPFM_Frontend.actions.addElementRow),jQuery(document).on("click",".option-delete-btn",WPFM_Frontend.actions.removeAttributesOptions),jQuery(document).on("click",".wpfm-delete-btn",WPFM_Frontend.actions.removeAttributes),jQuery("#wpfm-add-new-option").on("click",WPFM_Frontend.actions.addNewOption),jQuery("body").on("change",'input[name^="topping_name"]',WPFM_Frontend.actions.updateOptionTitle),jQuery(document).on("click",".wpfm-togglediv",function(t){var e=jQuery(this).data("row-count");"true"===jQuery(t.currentTarget).attr("aria-expanded")?(jQuery(".wpfm-options-wrap.wpfm-options-box-"+e).removeClass("closed"),jQuery(this).attr("aria-expanded","false")):(jQuery(".wpfm-options-wrap.wpfm-options-box-"+e).addClass("closed"),jQuery(this).attr("aria-expanded","true")),jQuery(this).parents(".postbox").find(".wpfm-options-box").slideToggle("slow")}),jQuery(".container .wpfm-form-wrapper table.widefat tbody").sortable({connectWith:".container .wpfm-form-wrapper table.widefat tbody",items:"tr",axis:"y",placeholder:"placeholder",opacity:.65,update:function(t,e){var o=jQuery(this).closest(".postbox").children(".repeated-options").val();jQuery(".container .wpfm-form-group.fieldset_topping_options_"+o+" table.widefat tbody tr").each(function(t){var e=t+1;jQuery(this).children("td:nth-child(2)").html(e),jQuery(this).attr("class","option-tr-"+e),jQuery(this).children(".option-value-class").val(e),jQuery(this).children("td").children(".opt_name").attr("name",o+"_option_name_"+e),jQuery(this).children("td").children(".opt_price").attr("name",o+"_option_price_"+e),jQuery(this).children("td").children(".option-delete-btn").attr("data-id",e)})}}).disableSelection(),jQuery("body").on("wpfm_add_error_tip",function(t,e,o){var i=e.position();0===e.parent().find(".wpfm_error_tip").length&&(e.after('<div class="wpfm_error_tip '+o+'">'+wpfm_accounting_params[o]+"</div>"),e.parent().find(".wpfm_error_tip").css("left",i.left+e.width()-e.width()/2-jQuery(".wpfm_error_tip").width()/2).css("top",i.top+e.height()).fadeIn("100"))}),jQuery("body").on("wpfm_remove_error_tip",function(t,e,o){e.parent().find(".wpfm_error_tip."+o).fadeOut("100",function(){jQuery(this).remove()})}),jQuery("body").on("click",function(){jQuery(".wpfm_error_tip").fadeOut("100",function(){jQuery(this).remove()})}),jQuery("body").on("blur","#food_sale_price",function(){jQuery(".wpfm_error_tip").fadeOut("100",function(){jQuery(this).remove()})}),jQuery("body").on("keyup","#food_sale_price",function(t,e){var o,i=jQuery(this);o=jQuery("#food_price");var r=parseFloat(window.accounting.unformat(i.val())),n=parseFloat(window.accounting.unformat(o.val()));r>=n?jQuery(document.body).triggerHandler("wpfm_add_error_tip",[jQuery(this),"wpfm_sale_less_than_regular_error"]):jQuery(document.body).triggerHandler("wpfm_remove_error_tip",[jQuery(this),"wpfm_sale_less_than_regular_error"])}),jQuery("body").on("change","#food_sale_price",function(){var t,e=jQuery(this);t=jQuery("#food_price");var o=parseFloat(window.accounting.unformat(e.val())),i=parseFloat(window.accounting.unformat(t.val()));o>=i&&jQuery(this).val("")}),jQuery(".wpfm-accordion-action").click(function(t){jQuery(this).parent().hasClass("wpfm-accordion-item-show")?jQuery(this).parent().removeClass("wpfm-accordion-item-show"):(jQuery(".wpfm-accordion-item").removeClass("wpfm-accordion-item-show"),jQuery(this).parent().addClass("wpfm-accordion-item-show"))})},actions:{removeFoodItem:function(t){jQuery(this).parents("li").remove()},addElementRow:function(t){var e=0;e=jQuery(this).parents("table").find("tbody tr").length,e+=1;var o=jQuery(this).closest(".postbox").children(".repeated-options").val(),i=jQuery(this).data("row").replace(/%%repeated-option-index3%%/g,e).replace(/%%repeated-option-index2%%/g,o);i.replace('value="1"',e),jQuery(this).parents("table").find("tbody").append(i)},removeAttributesOptions:function(t){var e=jQuery(this).closest(".postbox").children(".repeated-options").val();jQuery(".wpfm-options-box-"+e+" tbody tr.option-tr-"+jQuery(this).data("id")).remove()},removeAttributes:function(t){jQuery(".wpfm-options-box-"+jQuery(this).data("id")).remove()},updateOptionTitle:function(t){jQuery(this).closest(".postbox").children("h3").children(".attribute_name").text(this.value);var e=this.value.replace(/\s/g,"_").toLowerCase();jQuery(this).closest(".postbox").children("h3").children(".attribute_key").children("input").val(e),""==this.value&&(jQuery(this).closest(".postbox").children("h3").children(".attribute_name").text("Option Key"),jQuery(this).closest(".postbox").children("h3").children(".attribute_key").children("input").val("topping_key"))},addNewOption:function(t){var e=0;jQuery(".wpfm-form-wrapper").find("div.wpfm-options-wrap").length&&jQuery(".wpfm-form-wrapper").find("div.wpfm-options-wrap").each(function(){e++}),e+=1;var o=jQuery(this).data("row").replace(/__repeated-option-index__/g,e).replace(/%repeated-option-index%/g,e);jQuery(".wpfm-form-wrapper .wpfm-actions").before(o),jQuery(".container .wpfm-form-wrapper table.widefat tbody").sortable({connectWith:".container .wpfm-form-wrapper table.widefat tbody",items:"tr",axis:"y",placeholder:"placeholder",opacity:.65,update:function(t,e){var o=jQuery(this).closest(".postbox").children(".repeated-options").val();jQuery(".container .wpfm-form-group.fieldset_topping_options_"+o+" table.widefat tbody tr").each(function(t){var e=t+1;jQuery(this).children("td:nth-child(2)").html(e),jQuery(this).attr("class","option-tr-"+e),jQuery(this).children(".option-value-class").val(e),jQuery(this).children("td").children(".opt_name").attr("name",o+"_option_name_"+e),jQuery(this).children("td").children(".opt_price").attr("name",o+"_option_price_"+e),jQuery(this).children("td").children(".option-delete-btn").attr("data-id",e)})}}).disableSelection(),jQuery('input[data-picker="datepicker"]').length>0&&(wpfm_food_submission.show_past_date?jQuery('input[data-picker="datepicker"]').datepicker({dateFormat:wpfm_food_submission.i18n_datepicker_format,firstDay:wpfm_food_submission.start_of_week,monthNames:wpfm_food_submission.monthNames}):jQuery('input[data-picker="datepicker"]').datepicker({minDate:0,dateFormat:wpfm_food_submission.i18n_datepicker_format,firstDay:wpfm_food_submission.start_of_week,monthNames:wpfm_food_submission.monthNames})),jQuery(".food-manager-multiselect").chosen({search_contains:!0}),jQuery(this).parents(".wpfm-options-wrapper").children(".wpfm-options-wrap").length;var i=fieldLabel=jQuery(this).parents(".wpfm-options-wrapper").children(".wpfm-options-wrap").find("fieldset.wpfm-form-group.wp-editor-field").last().attr("data-field-name");wp.editor.initialize(i,{tinymce:{wpautop:!1,textarea_rows:8,plugins:"lists,paste,tabfocus,wplink,wordpress",toolbar1:"bold,italic,|,bullist,numlist,|,link,unlink,|,undo,redo",toolbar2:"",paste_as_text:!0,paste_auto_cleanup_on_paste:!0,paste_remove_spans:!0,paste_remove_styles:!0,paste_remove_styles_if_webkit:!0,paste_strip_class_attributes:!0},quicktags:!1,mediaButtons:!1})}}}};WPFM_Frontend=WPFM_Frontend(),jQuery(document).ready(function(t){WPFM_Frontend.init()}); -
wp-food-manager/trunk/assets/js/multiselect.js
r2902336 r3022874 9 9 /// <since>1.0.0</since> 10 10 init: function () { 11 WPFM_Common.logInfo("WPFM_MultiSelect.init...");12 11 jQuery(".food-manager-multiselect").chosen({ search_contains: !0 }); 13 12 } 14 } //enf of returnmultiselect 15 }; //end of class 13 } //enf of returnmultiselect. 14 }; //end of class. 16 15 17 16 WPFM_MultiSelect = WPFM_MultiSelect(); -
wp-food-manager/trunk/assets/js/term-multiselect.js
r2902336 r3022874 9 9 /// <since>1.0.0</since> 10 10 init: function () { 11 WPFM_Common.logInfo("WPFM_TermMultiSelect.init...");12 11 jQuery(".food-manager-category-dropdown").chosen({ search_contains: !0 }); 13 12 } 14 } //enf of return 15 }; //end of class 13 } //enf of return. 14 }; //end of class. 16 15 17 16 WPFM_TermMultiSelect = WPFM_TermMultiSelect(); -
wp-food-manager/trunk/assets/js/term-select-multi-appearance.js
r2914276 r3022874 19 19 selected_terms = {}, 20 20 units = JSON.parse(appearance_params.unit_terms); 21 // Push selected value array 21 // Push selected value array. 22 22 jQuery.each(jQuery(this).find('option'), function (key, value) { 23 23 if (jQuery(this).is(':selected')) { 24 // Define term id and term name 24 // Define term id and term name. 25 25 var term_id = jQuery(this).val(), 26 26 label = jQuery(this).text(); 27 // array 27 // array. 28 28 selected_terms[term_id] = label; 29 29 } 30 30 }); 31 // units html 31 // units html. 32 32 jQuery.each(units, function (key, unit) { 33 33 unit_options += '<option value="' + unit.term_id + '">' + unit.name + '</option>'; 34 34 }); 35 // preview html 35 // preview html. 36 36 jQuery.each(selected_terms, function (term_id, label) { 37 37 term_id = parseInt(term_id); … … 39 39 preview_htm += '<label>' + label + '</label>'; 40 40 preview_htm += '<div class="term-item-flex">'; 41 preview_htm += '<input type="number" min="0" step=" 0.1" name="' + data_name + '[' + term_id + '][value]">';41 preview_htm += '<input type="number" min="0" step="any" name="' + data_name + '[' + term_id + '][value]">'; 42 42 preview_htm += '<select name="' + data_name + '[' + term_id + '][unit_id]">' + unit_options + '</select>'; 43 43 preview_htm += '</div>'; … … 50 50 jQuery(this).parents('.wpfm-form-group').find('.selection-preview').show(); 51 51 } 52 // Append preview html 52 // Append preview html. 53 53 if (selected_val) { 54 54 jQuery.each(selected_val, function (term_id, value) { -
wp-food-manager/trunk/assets/js/term-select-multi-appearance.min.js
r2914276 r3022874 1 var WPFM_MultiAppearanceSelect=function(){return{init:function(){WPFM_Common.logInfo("WPFM_MultiAppearanceSelect.init..."),jQuery(".multiselect_appearance .food-manager-category-dropdown").on("change",function(){if(jQuery(".selection-preview .preview-items li").length){var e={};jQuery(".selection-preview .preview-items li").each(function(i){var t=jQuery(this).attr("data-id"),n=jQuery(this).find("input").val(),a=jQuery(this).find("select").val();e[t]={value:n,unit_id:a}})}var i=jQuery(this).parents(".wpfm-form-group").find(".selection-preview").attr("data-name"),t="",n='<option value="">Unit</option>',a={},l=JSON.parse(appearance_params.unit_terms);jQuery.each(jQuery(this).find("option"),function(e,i){if(jQuery(this).is(":selected")){var t=jQuery(this).val(),n=jQuery(this).text();a[t]=n}}),jQuery.each(l,function(e,i){n+='<option value="'+i.term_id+'">'+i.name+"</option>"}),jQuery.each(a,function(e,a){t+='<li class="term-item" data-id="'+(e=parseInt(e))+'">',t+="<label>"+a+"</label>",t+='<div class="term-item-flex">',t+='<input type="number" min="0" step=" 0.1" name="'+i+"["+e+'][value]">',t+='<select name="'+i+"["+e+'][unit_id]">'+n+"</select>",t+="</div>",t+="</li>"}),jQuery(this).parents(".wpfm-form-group").find(".selection-preview ul").html(t),0==jQuery(this).parents(".wpfm-form-group").find(".selection-preview ul").find("li").length?jQuery(this).parents(".wpfm-form-group").find(".selection-preview").hide():jQuery(this).parents(".wpfm-form-group").find(".selection-preview").show(),e&&jQuery.each(e,function(e,i){jQuery('.selection-preview .preview-items li[data-id="'+e+'"]').find("input").val(i.value),jQuery('.selection-preview .preview-items li[data-id="'+e+'"]').find("select").val(i.unit_id)})})}}};WPFM_MultiAppearanceSelect=WPFM_MultiAppearanceSelect(),jQuery(document).ready(function(e){WPFM_MultiAppearanceSelect.init()});1 var WPFM_MultiAppearanceSelect=function(){return{init:function(){WPFM_Common.logInfo("WPFM_MultiAppearanceSelect.init..."),jQuery(".multiselect_appearance .food-manager-category-dropdown").on("change",function(){if(jQuery(".selection-preview .preview-items li").length){var e={};jQuery(".selection-preview .preview-items li").each(function(i){var t=jQuery(this).attr("data-id"),n=jQuery(this).find("input").val(),a=jQuery(this).find("select").val();e[t]={value:n,unit_id:a}})}var i=jQuery(this).parents(".wpfm-form-group").find(".selection-preview").attr("data-name"),t="",n='<option value="">Unit</option>',a={},l=JSON.parse(appearance_params.unit_terms);jQuery.each(jQuery(this).find("option"),function(e,i){if(jQuery(this).is(":selected")){var t=jQuery(this).val(),n=jQuery(this).text();a[t]=n}}),jQuery.each(l,function(e,i){n+='<option value="'+i.term_id+'">'+i.name+"</option>"}),jQuery.each(a,function(e,a){t+='<li class="term-item" data-id="'+(e=parseInt(e))+'">',t+="<label>"+a+"</label>",t+='<div class="term-item-flex">',t+='<input type="number" min="0" step="any" name="'+i+"["+e+'][value]">',t+='<select name="'+i+"["+e+'][unit_id]">'+n+"</select>",t+="</div>",t+="</li>"}),jQuery(this).parents(".wpfm-form-group").find(".selection-preview ul").html(t),0==jQuery(this).parents(".wpfm-form-group").find(".selection-preview ul").find("li").length?jQuery(this).parents(".wpfm-form-group").find(".selection-preview").hide():jQuery(this).parents(".wpfm-form-group").find(".selection-preview").show(),e&&jQuery.each(e,function(e,i){jQuery('.selection-preview .preview-items li[data-id="'+e+'"]').find("input").val(i.value),jQuery('.selection-preview .preview-items li[data-id="'+e+'"]').find("select").val(i.unit_id)})})}}};WPFM_MultiAppearanceSelect=WPFM_MultiAppearanceSelect(),jQuery(document).ready(function(e){WPFM_MultiAppearanceSelect.init()}); -
wp-food-manager/trunk/forms/wpfm-abstract-form.php
r2930934 r3022874 30 30 31 31 /** 32 * Process function . all processing code if needed - can also change view if step is complete32 * Process function - all processing code if needed can also change view if step is complete. 33 33 * 34 34 * @access public … … 37 37 */ 38 38 public function process() { 39 // reset cookie39 // Reset cookie. 40 40 if (isset($_GET['new']) && isset($_COOKIE['wpfm-adding-food-id']) && isset($_COOKIE['wpfm-adding-food-key']) && get_post_meta(sanitize_text_field($_COOKIE['wpfm-adding-food-id']), '_adding_key', true) == $_COOKIE['wpfm-adding-food-key']) { 41 41 delete_post_meta(sanitize_text_field($_COOKIE['wpfm-adding-food-id']), '_adding_key'); … … 123 123 124 124 /** 125 * Get step from outside of the class 125 * Get step from outside of the class. 126 126 * 127 127 * @access public … … 134 134 135 135 /** 136 * Get steps from outside of the class 136 * Get steps from outside of the class. 137 137 * 138 138 * @access public … … 145 145 146 146 /** 147 * Get step key from outside of the class 147 * Get step key from outside of the class. 148 148 * 149 149 * @access public … … 162 162 163 163 /** 164 * Get step from outside of the class 164 * Get step from outside of the class. 165 165 * 166 166 * @access public … … 173 173 174 174 /** 175 * Increase step from outside of the class 175 * Increase step from outside of the class. 176 176 * 177 177 * @access public … … 184 184 185 185 /** 186 * Decrease step from outside of the class 186 * Decrease step from outside of the class. 187 187 * 188 188 * @access public … … 213 213 214 214 /** 215 * Sort array by priority value 215 * Sort array by priority value. 216 216 * 217 217 * @access public … … 229 229 230 230 /** 231 * Init form fields 231 * Init form fields. 232 232 * 233 233 * @access public … … 253 253 254 254 /** 255 * Get post data for fields 255 * Get post data for fields. 256 256 * 257 257 * @access protected … … 262 262 global $post; 263 263 264 // Init fields 265 // $this->init_fields(); We dont need to initialize with this function because of field editor 266 // Now field editor function will return all the fields 264 // Init fields. 265 // $this->init_fields(); We dont need to initialize with this function because of field editor. 266 // Now field editor function will return all the fields. 267 267 // Get merged fields from db and default fields. 268 268 $this->merge_with_custom_fields('frontend'); … … 309 309 foreach ($group_fields as $key => $field) { 310 310 311 // Get the value 311 // Get the value. 312 312 $field_type = str_replace('-', '_', $field['type']); 313 313 if ($handler = apply_filters("food_manager_get_posted_{$field_type}_field", false)) { … … 366 366 foreach ($group_fields as $key => $field) { 367 367 368 // Get the value 368 // Get the value. 369 369 $field_type = str_replace('-', '_', $field['type']); 370 370 if ($handler = apply_filters("food_manager_get_posted_{$field_type}_field", false)) { … … 385 385 } 386 386 387 // Set fields value 387 // Set fields value. 388 388 $this->fields[$group_key][$key]['value'] = $values[$group_key][$key]; 389 389 } … … 394 394 395 395 /** 396 * Get the value of a repeated fields (e.g. repeated) 396 * Get the value of a repeated fields (e.g. repeated). 397 397 * 398 398 * @access protected … … 455 455 456 456 /** 457 * Get the value of a posted repeated field 457 * Get the value of a posted repeated field. 458 458 * 459 459 * @access protected … … 476 476 */ 477 477 protected function sanitize_posted_field($value) { 478 // Decode URLs 478 // Decode URLs. 479 479 if (is_string($value) && (strstr($value, 'http:') || strstr($value, 'https:'))) { 480 480 $value = urldecode($value); 481 481 } 482 482 483 // Sanitize value 483 // Sanitize value. 484 484 $value = is_array($value) ? array_map(array($this, 'sanitize_posted_field'), $value) : sanitize_text_field(stripslashes(trim($value))); 485 485 … … 488 488 489 489 /** 490 * Get the value of a posted field 490 * Get the value of a posted field. 491 491 * 492 492 * @access protected … … 501 501 502 502 /** 503 * Get the value of a posted multiselect field 503 * Get the value of a posted multiselect field. 504 504 * 505 505 * @access protected … … 514 514 515 515 /** 516 * Get the value of a posted file field 516 * Get the value of a posted file field. 517 517 * 518 518 * @access protected … … 535 535 536 536 /** 537 * Get the value of a posted textarea field 537 * Get the value of a posted textarea field. 538 538 * 539 539 * @access protected … … 548 548 549 549 /** 550 * Get the value of a posted textarea field 550 * Get the value of a posted textarea field. 551 551 * 552 552 * @access protected … … 561 561 562 562 /** 563 * Get posted terms for the taxonomy 563 * Get posted terms for the taxonomy. 564 564 * 565 565 * @access protected … … 578 578 579 579 /** 580 * Get posted terms for the taxonomy 580 * Get posted terms for the taxonomy. 581 581 * 582 582 * @access protected … … 591 591 592 592 /** 593 * Get posted terms for the taxonomy 593 * Get posted terms for the taxonomy. 594 594 * 595 595 * @access protected … … 640 640 641 641 /** 642 * Merge and replace $default_fields with custom fields 642 * Merge and replace $default_fields with custom fields. 643 643 * 644 644 * @access public 645 645 * @param string $field_view 646 * @return array Returns merged and replaced fields 646 * @return array Returns merged and replaced fields. 647 647 * @since 1.0.0 648 648 */ … … 708 708 /** 709 709 * If the default field is removed via the field editor, then we cannot remove this field from the code because it is hardcoded in the file, so we need to set a flag to identify which particular field is removed by the user. 710 * Using the visibility flag, we can identify those fields that need to be removed or kept in the Field Editor based on the visibility flag value. If the visibility is true, then we will keep the field, and if the visibility flag is false, then we will not show this default field in the field editor. (As an action of the user removed this field from the field editor but not removed from the code, so we have to set this flag) 710 * Using the visibility flag, we can identify those fields that need to be removed or kept in the Field Editor based on the visibility flag value. If the visibility is true, then we will keep the field, and if the visibility flag is false, then we will not show this default field in the field editor. (As an action of the user removed this field from the field editor but not removed from the code, so we have to set this flag). 711 711 * We are getting several default fields from the addons and using theme-side customization via the 'add_food_fields' filter. 712 712 * Now, it's not easy to manage filter fields and default fields of the plugin in this case, so we need to set this flag to identify whether the field should be shown or not in the field editor. -
wp-food-manager/trunk/forms/wpfm-add-food-form.php
r2930934 r3022874 16 16 17 17 /** 18 * Main Instance 18 * Main Instance. 19 19 */ 20 20 public static function instance() { … … 53 53 uasort($this->steps, array($this, 'sort_by_priority')); 54 54 55 // Get step/food 55 // Get step/food. 56 56 if (isset($_POST['step'])) { 57 57 $this->step = is_numeric($_POST['step']) ? max(absint($_POST['step']), 0) : array_search($_POST['step'], array_keys($this->steps)); … … 75 75 } 76 76 77 // Load food details 77 // Load food details. 78 78 if ($this->food_id) { 79 79 $food_status = get_post_status($this->food_id); … … 305 305 * @access protected 306 306 * @param array $values 307 * @return bool on success, WP_ERROR on failure 307 * @return bool on success, WP_ERROR on failure. 308 308 * @since 1.0.0 309 309 */ … … 387 387 */ 388 388 public function submit() { 389 // get date and time setting defined in admin panel food listing -> Settings -> Date & Time formatting 389 // get date and time setting defined in admin panel food listing -> Settings -> Date & Time formatting. 390 390 $datepicker_date_format = esc_attr(WPFM_Date_Time::get_datepicker_format()); 391 391 392 // covert datepicker format into php date() function date format 392 // covert datepicker format into php date() function date format. 393 393 $php_date_format = esc_attr(WPFM_Date_Time::get_view_date_format_from_datepicker_date_format($datepicker_date_format)); 394 394 395 // Init fields 396 // $this->init_fields(); We don't need to initialize with this function because of the field editor 397 // Now field editor function will return all the fields 395 // Init fields. 396 // $this->init_fields(); We don't need to initialize with this function because of the field editor. 397 // Now field editor function will return all the fields. 398 398 // Get merged fields from db and default fields. 399 399 $this->merge_with_custom_fields('frontend'); 400 400 401 // Load data if necessary 401 // Load data if necessary. 402 402 if ($this->food_id) { 403 403 $food = get_post($this->food_id); … … 425 425 break; 426 426 427 case 'food_tag': 428 $this->fields[$group_key][$key]['value'] = wp_get_object_terms($food->ID, 'food_manager_tag', array('fields' => 'ids')); 429 break; 430 431 427 432 default: 428 433 $this->fields[$group_key][$key]['value'] = sanitize_text_field(get_post_meta($food->ID, '_' . $key, true)); … … 442 447 $this->fields = apply_filters('add_food_fields_get_food_data', $this->fields, $food); 443 448 444 // Get user meta 449 // Get user meta. 445 450 } elseif (is_user_logged_in() && empty($_POST['add_food'])) { 446 451 if (!empty($this->fields['food']['registration'])) { … … 468 473 469 474 /** 470 * Submit Step is posted 475 * Submit Step is posted. 471 476 * 472 477 * @access public … … 477 482 try { 478 483 479 // Init fields 480 //$this->init_fields(); We dont need to initialize with this function because of field edior 481 // Now field editor function will return all the fields 484 // Init fields. 485 //$this->init_fields(); We dont need to initialize with this function because of field edior. 486 // Now field editor function will return all the fields. 482 487 //Get merged fields from db and default fields. 483 488 $this->merge_with_custom_fields('frontend'); 484 489 485 // Get posted values 490 // Get posted values. 486 491 $values = $this->get_posted_fields(); 487 492 if (empty($_POST['add_food'])) { … … 489 494 } 490 495 491 // Validate required 496 // Validate required. 492 497 if (is_wp_error(($return = $this->validate_fields($values)))) { 493 498 throw new Exception($return->get_error_message()); 494 499 } 495 500 496 // Account creation 501 // Account creation. 497 502 if (!is_user_logged_in()) { 498 503 $create_account = false; … … 545 550 } 546 551 547 // Update the food 552 // Update the food. 553 $food_title = isset($values['food']['food_title']) && !empty($values['food']['food_title']) ? $values['food']['food_title'] : ''; 548 554 $food_description = isset($values['food']['food_description']) && !empty($values['food']['food_description']) ? $values['food']['food_description'] : ''; 549 $food_title = isset($values['food']['food_title']) && !empty($values['food']['food_title']) ? $values['food']['food_title'] : ''; 550 $this->save_food(sanitize_text_field($food_title), sanitize_textarea_field($food_description), $this->food_id ? '' : 'preview', $values); 551 552 // Successful, show next step 555 556 // Determine the status based on the condition. 557 $status = $this->food_id ? '' : 'preview'; 558 559 // Pass the $status variable as an argument in the save_food() method. 560 $this->save_food(sanitize_text_field($food_title), wp_kses_post($food_description), $status, $values, false); 561 562 // Successful, show next step. 553 563 $this->step++; 554 564 } catch (Exception $e) { … … 559 569 560 570 /** 561 * Update or create a food listing from posted data 571 * Update or create a food listing from posted data. 562 572 * 563 573 * @access protected … … 583 593 $food_slug = array(); 584 594 585 // Prepend with food type 595 // Prepend with food type. 586 596 if (apply_filters('add_food_prefix_post_name_with_food_type', true) && !empty($values['food']['food_type'])) { 587 597 if (food_manager_multiselect_food_type() && is_array($values['food']['food_type'])) { … … 711 721 } 712 722 713 // Edit = show submit form again 723 // Edit = show submit form again. 714 724 if (!empty($_POST['edit_food'])) { 715 725 $this->step--; 716 726 } 717 727 718 // Continue = change food status then show next screen 728 // Continue = change food status then show next screen. 719 729 if (!empty($_POST['continue'])) { 720 730 $food = get_post($this->food_id); 721 731 if (in_array($food->post_status, array('preview', 'expired'))) { 722 732 723 // Reset expiry 733 // Reset expiry. 724 734 delete_post_meta($food->ID, '_food_expiry_date'); 725 735 726 // Update food listing 736 // Update food listing. 727 737 $update_food = array(); 728 738 $update_food['ID'] = $food->ID; … … 749 759 750 760 /** 751 * get selected fields from the field editor761 * Get selected fields from the field editor. 752 762 * 753 763 * @access public … … 760 770 761 771 /** 762 * get extra options fields from the field editor772 * Get extra options fields from the field editor. 763 773 * 764 774 * @access public … … 771 781 772 782 /** 773 * This function will initialize default fields and return as an array 783 * This function will initialize default fields and return as an array. 774 784 * 775 785 * @access public … … 779 789 public function get_default_fields() { 780 790 if (empty($this->fields)) { 781 // Make sure fields are initialized and set 791 // Make sure fields are initialized and set. 782 792 $this->init_fields(); 783 793 } … … 786 796 787 797 /** 788 * This function will set the food id for invoking the food object 798 * This function will set the food id for invoking the food object. 789 799 * 790 800 * @access public … … 799 809 800 810 /** 801 * This function will get the food id for invoking the food object 811 * This function will get the food id for invoking the food object. 802 812 * 803 813 * @access public -
wp-food-manager/trunk/forms/wpfm-edit-food-form.php
r2930934 r3022874 13 13 14 14 /** 15 * Main Instance 15 * Main Instance. 16 16 */ 17 17 public static function instance() { … … 23 23 24 24 /** 25 * Constructor 25 * Constructor. 26 26 */ 27 27 public function __construct() { … … 55 55 global $wpdb; 56 56 $food = get_post($this->food_id); 57 57 if ($food->post_type !== 'food_manager'): 58 return; 59 endif; 58 60 if (empty($this->food_id) || ($food->post_status !== 'publish' && $food->post_status !== 'pending' && !food_manager_user_can_edit_pending_submissions())) { 59 61 echo wpautop(__('Invalid listing', 'wp-food-manager')); 60 62 return; 61 63 } 62 63 // Init fields 64 //$this->init_fields(); We dont need to initialize with this function because of field editor 65 // Now field editor function will return all the fields 64 // Init fields. 65 //$this->init_fields(); We dont need to initialize with this function because of field editor. 66 // Now field editor function will return all the fields. 66 67 //Get merged fields from db and default fields. 67 68 $this->merge_with_custom_fields('frontend'); … … 161 162 162 163 try { 163 // Get posted values 164 // Get posted values. 164 165 $values = $this->get_posted_fields(); 165 166 166 // Validate required 167 // Validate required. 167 168 if (is_wp_error(($return = $this->validate_fields($values)))) { 168 169 throw new Exception($return->get_error_message()); 169 170 } 170 171 171 // Update the food 172 // Update the food. 172 173 $food_title = isset($values['food']['food_title']) && !empty($values['food']['food_title']) ? $values['food']['food_title'] : ''; 173 174 $food_description = isset($values['food']['food_description']) && !empty($values['food']['food_description']) ? $values['food']['food_description'] : ''; 174 175 $this->save_food(esc_html($food_title), wp_kses_post($food_description), '', $values, false); 175 176 176 // Successful 177 // Successful. 177 178 switch (get_post_status($this->food_id)) { 178 179 case 'publish': -
wp-food-manager/trunk/forms/wpfm-forms.php
r2930934 r3022874 29 29 30 30 /** 31 * Constructor 31 * Constructor. 32 32 */ 33 33 public function __construct() { … … 35 35 36 36 /** 37 * Load a form's class 37 * Load a form's class. 38 38 * 39 39 * @access public 40 40 * @param string $form_name 41 * @return string class name on success, false on failure 41 * @return string class name on success, false on failure. 42 42 * @since 1.0.0 43 43 */ … … 47 47 } 48 48 49 // Now try to load the form_name 49 // Now try to load the form_name. 50 50 $form_class = 'WPFM_' . str_replace('-', '_', sanitize_key($form_name)) . '_Form'; 51 51 $form_file = WPFM_PLUGIN_DIR . '/forms/wpfm-' . sanitize_file_name($form_name) . '-form.php'; … … 63 63 } 64 64 65 // Init the form 65 // Init the form. 66 66 return call_user_func(array($form_class, 'instance')); 67 67 } … … 72 72 * @access public 73 73 * @param string $form_name 74 * @param array $atts Optional passed attributes 74 * @param array $atts Optional passed attributes. 75 75 * @return string 76 76 * @since 1.0.0 … … 89 89 * @access public 90 90 * @param string $form_name 91 * @param array $atts Optional passed attributes 91 * @param array $atts Optional passed attributes. 92 92 * @return string 93 93 * @since 1.0.0 -
wp-food-manager/trunk/includes/wpfm-action-hooks.php
r2930934 r3022874 1 1 <?php 2 if (!defined('ABSPATH')) exit; // Exit if accessed directly 2 if (!defined('ABSPATH')) exit; // Exit if accessed directly. 3 3 /** 4 4 * WPFM_ActionHooks class. … … 52 52 /** 53 53 * __construct function. 54 * get the plugin hooked in and ready 54 * get the plugin hooked in and ready. 55 55 * 56 56 * @since 1.0.1 … … 87 87 add_action('admin_init', array($this, 'redirect')); 88 88 89 // Writepanel's Actions 89 // Writepanel's Actions. 90 90 add_action('add_meta_boxes', array($this, 'add_meta_boxes')); 91 91 add_action('save_post', array($this, 'save_post'), 1, 2); … … 95 95 add_action('wpfm_save_food_data', array($this, 'food_manager_save_food_manager_data'), 20, 3); 96 96 97 // Food menu 97 // Food menu. 98 98 add_action('wp_ajax_wpfm_get_food_listings_by_category_id', array($this, 'get_food_listings_by_category_id')); 99 99 add_action('food_manager_save_food_manager_menu', array($this, 'food_manager_save_food_manager_menu_data'), 20, 2); … … 102 102 add_action('admin_notices', array($this, 'display_notice')); 103 103 104 // wpfm form's action 104 // wpfm form's action. 105 105 add_action('init', array($this, 'load_posted_form')); 106 106 107 // wpfm ajax's action 107 // wpfm ajax's action. 108 108 add_action('init', array($this, 'add_endpoint')); 109 109 add_action('template_redirect', array($this, 'do_fm_ajax'), 0); 110 110 111 // FM Ajax endpoints 111 // FM Ajax endpoints. 112 112 add_action('food_manager_ajax_get_listings', array($this, 'get_listings')); 113 113 add_action('food_manager_ajax_upload_file', array($this, 'upload_file')); 114 114 115 // BW compatible handlers 115 // BW compatible handlers. 116 116 add_action('wp_ajax_nopriv_food_manager_get_listings', array($this, 'get_listings')); 117 117 add_action('wp_ajax_food_manager_get_listings', array($this, 'get_listings')); … … 121 121 add_action('wp_ajax_wpfm-logo-update-menu-order', array($this, 'menuUpdateOrder')); 122 122 123 // wpfm cache helper 123 // wpfm cache helper. 124 124 add_action('save_post', array($this, 'flush_get_food_managers_cache')); 125 125 add_action('delete_post', array($this, 'flush_get_food_managers_cache')); … … 132 132 add_action('transition_post_status', array($this, 'maybe_clear_count_transients'), 10, 3); 133 133 134 // wpfm custom post-types 134 // wpfm custom post-types. 135 135 add_action('init', array($this->post_types, 'register_post_types'), 0); 136 136 add_action('wp_footer', array($this, 'output_structured_data')); 137 137 138 // View count action 138 // View count action. 139 139 add_action('set_single_listing_view_count', array($this, 'set_single_listing_view_count')); 140 140 if (get_option('food_manager_enable_categories')) { … … 145 145 } 146 146 147 // wpfm shortcode's action 148 add_action('food_manager_food_dashboard_content _edit', array($this, 'edit_food'));147 // wpfm shortcode's action. 148 add_action('food_manager_food_dashboard_contents_edit', array($this, 'edit_food')); 149 149 add_action('food_manager_food_filters_end', array($this, 'food_filter_results'), 30); 150 150 add_action('food_manager_output_foods_no_results', array($this, 'output_no_results')); 151 151 add_action('wp_ajax_term_ajax_search', array($this, 'term_ajax_search')); 152 152 add_action('wp_ajax_nopriv_term_ajax_search', array($this, 'term_ajax_search')); 153 } 154 155 /** 156 * Output some content when no results were found 153 154 } 155 156 /** 157 * Output some content when no results were found. 157 158 * 158 159 * @access public … … 165 166 166 167 /** 167 * Show results div 168 * Show results div. 168 169 * 169 170 * @access public … … 176 177 177 178 /** 178 * Edit food form 179 * Edit food form. 179 180 * 180 181 * @access public … … 188 189 189 190 /** 190 * Show Food type dropdown 191 * Show Food type dropdown. 191 192 * 192 193 * @access public … … 222 223 223 224 /** 224 * Show category dropdown 225 * Show category dropdown. 225 226 * 226 227 * @access public … … 258 259 259 260 /** 260 * Set post view on the single listing page 261 * Set post view on the single listing page. 261 262 * 262 263 * @access public … … 283 284 284 285 /** 285 * output_structured_data 286 * output_structured_data. 286 287 * 287 288 * @access public … … 334 335 335 336 /** 336 * Maybe remove pending count transients 337 * Maybe remove pending count transients. 337 338 * 338 339 * When a supported post type status is updated, check if any cached count transients need to be removed. … … 349 350 350 351 /** 351 * Get supported post types for count caching 352 * Get supported post types for count caching. 352 353 * @param array $post_types Post types that should be cached. 353 354 * @param string $new_status New post status. … … 357 358 $post_types = apply_filters('wp_foodmanager_count_cache_supported_post_types', array('food_manager'), $new_status, $old_status, $post); 358 359 359 // Only proceed when statuses do not match, and post type is supported post type 360 // Only proceed when statuses do not match, and post type is supported post type. 360 361 if ($new_status === $old_status || !in_array($post->post_type, $post_types)) { 361 362 return; … … 363 364 364 365 /** 365 * Get supported post statuses for count caching 366 * Get supported post statuses for count caching. 366 367 * @param array $post_statuses Post statuses that should be cached. 367 368 * @param string $new_status New post status. … … 372 373 $rlike = array(); 373 374 374 // New status transient option name 375 // New status transient option name. 375 376 if (in_array($new_status, $valid_statuses)) { 376 377 $rlike[] = "^_transient_fm_{$new_status}_{$post->post_type}_count_user_"; 377 378 } 378 379 379 // Old status transient option name 380 // Old status transient option name. 380 381 if (in_array($old_status, $valid_statuses)) { 381 382 $rlike[] = "^_transient_fm_{$old_status}_{$post->post_type}_count_user_"; … … 402 403 403 404 /** 404 * Clear expired transients 405 * Clear expired transients. 405 406 * 406 407 * @access public … … 422 423 423 424 /** 424 * When any post has a term set 425 * When any post has a term set. 425 426 * 426 427 * @access public … … 437 438 438 439 /** 439 * When any term is edited 440 * When any term is edited. 440 441 * 441 442 * @access public … … 451 452 452 453 /** 453 * Flush the cache 454 * Flush the cache. 454 455 * 455 456 * @access public … … 504 505 505 506 /** 506 * Upload file via ajax 507 * Upload file via ajax. 507 508 * No nonce field since the form may be statically cached. 508 509 * … … 536 537 537 538 /** 538 * Get listings via ajax 539 * Get listings via ajax. 539 540 * 540 541 * @access public … … 603 604 'post_status' => 'publish' 604 605 )); 605 606 606 if (count($default_foods) == 0) { ?> 607 607 <div class="no_food_listings_found wpfm-alert wpfm-alert-danger"><?php _e('There is no food item listed in your food manager.', 'wp-food-manager'); ?></div> … … 614 614 $result['filter_value'] = array(); 615 615 616 // Categories 616 // Categories. 617 617 if ($search_categories) { 618 618 $showing_categories = array(); … … 626 626 } 627 627 628 // Food types 628 // Food types. 629 629 if ($search_food_types) { 630 630 $showing_food_types = array(); … … 638 638 } 639 639 640 // Food Menu 640 // Food Menu. 641 641 $hide_flag = 0; 642 642 if (is_array($search_food_menu) && implode(',', $search_food_menu)) { … … 673 673 674 674 if (sizeof($result['filter_value']) > 1) { 675 $message = sprintf(_n('Search completed. Found %d matching record.', 'Search completed. Found %d matching records.', $food _cnt, 'wp-food-manager'), $food_cnt);675 $message = sprintf(_n('Search completed. Found %d matching record.', 'Search completed. Found %d matching records.', $foods->found_posts, 'wp-food-manager'), $foods->found_posts); 676 676 $result['showing_applied_filters'] = true; 677 677 } else { … … 687 687 $result['filter_value'] = apply_filters('food_manager_get_listings_custom_filter_text', $message, $search_values); 688 688 689 // Generate RSS link 689 // Generate RSS link. 690 690 $result['showing_links'] = wpfm_get_filtered_links(array( 691 691 'search_keywords' => $search_keywords, … … 705 705 706 706 /** 707 * Check for WC Ajax request and fire action 707 * Check for WC Ajax request and fire action. 708 708 * 709 709 * @access public … … 722 722 define('DOING_AJAX', true); 723 723 } 724 // Not home - this is an ajax endpoint 724 // Not home - this is an ajax endpoint. 725 725 $wp_query->is_home = false; 726 726 do_action('food_manager_ajax_' . sanitize_text_field($action)); … … 730 730 731 731 /** 732 * Add our endpoint for frontend ajax requests 732 * Add our endpoint for frontend ajax requests. 733 733 * 734 734 * @access public … … 873 873 874 874 /** 875 * content for Copy Shortcode 875 * content for Copy Shortcode. 876 876 * 877 877 * @access public … … 882 882 */ 883 883 public function shortcode_copy_content_column($column, $post_id) { 884 echo '<code>'; 884 switch ($column) { 885 case 'shortcode': 886 echo '<code>'; 885 887 printf(esc_html__('[food_menu id=%d]', 'wp-food-manager'), esc_attr($post_id)); 886 888 echo '</code>'; 889 break; 890 case 'thumbnail': 891 if (has_post_thumbnail()) { 892 echo the_post_thumbnail('medium'); 893 } else { 894 echo '-'; 895 } 896 break; 897 } 887 898 } 888 899 … … 935 946 ], 936 947 ], 937 // Rest of your arguments 948 // Rest of your arguments. 938 949 ]; 939 950 … … 1011 1022 global $wpdb; 1012 1023 $thumbnail_image = array(); 1013 // Save Food Form fields values 1024 // Save Food Form fields values. 1014 1025 if (isset($form_fields['food'])) { 1015 1026 foreach ($form_fields['food'] as $key => $field) { 1016 1027 $type = !empty($field['type']) ? $field['type'] : ''; 1017 1028 1018 // Food Banner 1029 // Food Banner. 1019 1030 if ('food_banner' === $key) { 1020 1031 if (isset($_POST[$key]) && !empty($_POST[$key])) { 1021 1032 $thumbnail_image = is_array($_POST[$key]) ? array_values(array_filter($_POST[$key])) : $_POST[$key]; 1022 1033 1023 // Update Food Banner Meta Data 1034 // Update Food Banner Meta Data. 1024 1035 update_post_meta($post_id, '_' . esc_attr($key), $thumbnail_image); 1025 1036 if (is_array($_POST[$key])) { … … 1032 1043 $maybe_attach = array_filter((array)$thumbnail_image); 1033 1044 1034 // Handle attachments 1045 // Handle attachments. 1035 1046 if (sizeof($maybe_attach) && apply_filters('wpfm_attach_uploaded_files', true)) { 1036 1047 1037 // Get attachments 1048 // Get attachments. 1038 1049 $attachments = get_posts('post_parent=' . $post_id . '&post_type=attachment&fields=ids&numberposts=-1'); 1039 1050 $attachment_urls = array(); 1040 1051 1041 // Loop attachments already attached to the food 1052 // Loop attachments already attached to the food. 1042 1053 foreach ($attachments as $attachment_key => $attachment) { 1043 1054 $attachment_urls[] = wp_get_attachment_url($attachment); … … 1049 1060 $attachment_id = $WPFM_Add_Food_Form->create_attachment($attachment_url); 1050 1061 1051 /* 1052 * set first image of banner as a thumbnail 1053 */ 1062 // Set first image of banner as a thumbnail. 1063 1054 1064 if ($key == 0) { 1055 1065 set_post_thumbnail($post_id, $attachment_id); … … 1085 1095 } 1086 1096 1087 // Other form field's value 1097 // Other form field's value. 1088 1098 switch ($type) { 1089 1099 case 'textarea': … … 1098 1108 $datepicker_date_format = !empty(get_option('date_format')) ? get_option('date_format') : 'F j, Y'; 1099 1109 $php_date_format = WPFM_Date_Time::get_view_date_format_from_datepicker_date_format($datepicker_date_format); 1100 // Convert date and time value into DB formatted format and save eg. 1970-01-01 1110 // Convert date and time value into DB formatted format and save eg. 1970-01-01. 1101 1111 $date_dbformatted = WPFM_Date_Time::date_parse_from_format($php_date_format, $date); 1102 1112 $date_dbformatted = !empty($date_dbformatted) ? $date_dbformatted : $date; … … 1120 1130 $nutrition_ids = []; 1121 1131 1122 // Set Ingredients 1132 // Set Ingredients. 1123 1133 if ($key = 'food_ingredients') { 1124 1134 $taxonomy = 'food_manager_ingredient'; … … 1171 1181 } 1172 1182 1173 // Set Nutrition 1183 // Set Nutrition. 1174 1184 if ($key = 'food_nutritions') { 1175 1185 $taxonomy = 'food_manager_nutrition'; … … 1258 1268 } 1259 1269 1260 // Food Tags 1270 // Food Tags. 1261 1271 if ($key = 'food_tag') { 1262 1272 if (isset($_POST[$key]) && !empty($_POST[$key])) { … … 1285 1295 if ($find_option !== false) { 1286 1296 1287 // Remove from array 1297 // Remove from array. 1288 1298 unset($_POST['option_value_count'][$find_option]); 1289 1299 } … … 1317 1327 $toppings_meta[$count]['_' . $key] = isset($_POST[$key . '_' . $count]) && !empty($_POST[$key . '_' . $count]) ? wp_kses_post($_POST[$key . '_' . $count]) : ''; 1318 1328 } else { 1319 // Toppings Array 1329 // Toppings Array. 1320 1330 $toppings_meta[$count]['_' . $key] = isset($_POST[$key . '_' . $count]) && !empty($_POST[$key . '_' . $count]) ? esc_attr($_POST[$key . '_' . $count]) : ''; 1321 1331 } … … 1349 1359 } 1350 1360 1351 // Update repeated_options meta for the count of toppings 1361 // Update repeated_options meta for the count of toppings. 1352 1362 $repeated_options = isset($_POST['repeated_options']) ? $_POST['repeated_options'] : ''; 1353 1363 if (is_array($repeated_options)) { … … 1404 1414 1405 1415 /** 1406 * Do custom bulk actions 1416 * Do custom bulk actions. 1407 1417 * 1408 1418 * @access public … … 1439 1449 1440 1450 /** 1441 * Approve a single food 1451 * Approve a single food. 1442 1452 * 1443 1453 * @access public … … 1484 1494 do_action('wpfm_save_food_data', $post_id, $post, $writepanels->food_manager_data_fields()); 1485 1495 1486 // Set Order Menu 1496 // Set Order Menu. 1487 1497 $order_menu = $wpdb->get_results("SELECT menu_order FROM $wpdb->posts WHERE ID = " . intval($post_id)); 1488 1498 if ($order_menu && $order_menu[0]->menu_order == 0) { … … 1539 1549 1540 1550 /** 1541 * Add image field in 'food_manager_type' taxonomy page 1551 * Add image field in 'food_manager_type' taxonomy page. 1542 1552 * 1543 1553 * @access public … … 1560 1570 1561 1571 /** 1562 * Save the 'food_manager_type' taxonomy image field 1572 * Save the 'food_manager_type' taxonomy image field. 1563 1573 * 1564 1574 * @access public … … 1576 1586 1577 1587 /** 1578 * Add the image field in edit form page 1588 * Add the image field in edit form page. 1579 1589 * 1580 1590 * @access public … … 1608 1618 1609 1619 /** 1610 * Update the 'food_manager_type' taxonomy image field 1620 * Update the 'food_manager_type' taxonomy image field. 1611 1621 * 1612 1622 * @access public … … 1625 1635 1626 1636 /** 1627 * Enqueue the wp_media library 1637 * Enqueue the wp_media library. 1628 1638 * 1629 1639 * @access public … … 1639 1649 1640 1650 /** 1641 * Custom script 1651 * Custom script. 1642 1652 * 1643 1653 * @access public … … 1698 1708 1699 1709 /** 1700 * Display new columns values 1710 * Display new columns values. 1701 1711 * 1702 1712 * @access public … … 1716 1726 1717 1727 /** 1718 * Add image field in 'food_manager_category' taxonomy page 1728 * Add image field in 'food_manager_category' taxonomy page. 1719 1729 * 1720 1730 * @access public … … 1738 1748 1739 1749 /** 1740 * Save the 'food_manager_category' taxonomy image field 1750 * Save the 'food_manager_category' taxonomy image field. 1741 1751 * 1742 1752 * @access public … … 1754 1764 1755 1765 /** 1756 * Add the image field in edit form page 1766 * Add the image field in edit form page. 1757 1767 * 1758 1768 * @access public … … 1786 1796 1787 1797 /** 1788 * Update the 'food_manager_category' taxonomy image field 1798 * Update the 'food_manager_category' taxonomy image field. 1789 1799 * 1790 1800 * @access public … … 1804 1814 1805 1815 /** 1806 * Enqueue the wp_media library 1816 * Enqueue the wp_media library. 1807 1817 * 1808 1818 * @access public … … 1818 1828 1819 1829 /** 1820 * Custom script 1830 * Custom script. 1821 1831 * 1822 1832 * @access public … … 1877 1887 1878 1888 /** 1879 * Display new columns values 1889 * Display new columns values. 1880 1890 * 1881 1891 * @access public … … 1921 1931 1922 1932 /** 1923 * Register and enqueue scripts and css 1933 * Register and enqueue scripts and css. 1924 1934 * 1925 1935 * @access public … … 1933 1943 $chosen_used_on_page = has_wpfm_shortcode(null, $chosen_shortcodes); 1934 1944 1935 // jQuery Chosen - vendor 1945 // jQuery Chosen - vendor. 1936 1946 if (apply_filters('food_manager_chosen_enabled', $chosen_used_on_page)) { 1937 1947 wp_register_script('chosen', esc_url(WPFM_PLUGIN_URL . '/assets/js/jquery-chosen/chosen.jquery.min.js'), array('jquery'), '1.1.0', true); 1938 1948 wp_register_script('wp-food-manager-term-multiselect', esc_url(WPFM_PLUGIN_URL . '/assets/js/term-multiselect.min.js'), array('jquery', 'chosen'), WPFM_VERSION, true); 1939 wp_register_script('wp-food-manager-term-select-multi-appearance', esc_url(WPFM_PLUGIN_URL . '/assets/js/term-select-multi-appearance. min.js'), array('jquery', 'chosen'), WPFM_VERSION, true);1949 wp_register_script('wp-food-manager-term-select-multi-appearance', esc_url(WPFM_PLUGIN_URL . '/assets/js/term-select-multi-appearance.js'), array('jquery', 'chosen'), WPFM_VERSION, true); 1940 1950 wp_register_script('wp-food-manager-multiselect', esc_url(WPFM_PLUGIN_URL . '/assets/js/multiselect.min.js'), array('jquery', 'chosen'), WPFM_VERSION, true); 1941 1951 wp_enqueue_style('chosen', esc_url(WPFM_PLUGIN_URL . '/assets/css/chosen.min.css')); … … 1943 1953 } 1944 1954 1945 // File upload - vendor 1955 // File upload - vendor. 1946 1956 if (apply_filters('wpfm_ajax_file_upload_enabled', true)) { 1947 1957 wp_register_script('jquery-iframe-transport', esc_url(WPFM_PLUGIN_URL . '/assets/js/jquery-fileupload/jquery.iframe-transport.min.js'), array('jquery'), '1.8.3', true); … … 1965 1975 wp_enqueue_script('jquery-ui-sortable'); 1966 1976 1967 // Frontend Css 1968 wp_enqueue_style('wpfm-frontend', esc_url(WPFM_PLUGIN_URL . '/assets/css/frontend. min.css'));1969 1970 // Frontend js 1977 // Frontend Css. 1978 wp_enqueue_style('wpfm-frontend', esc_url(WPFM_PLUGIN_URL . '/assets/css/frontend.css')); 1979 1980 // Frontend js. 1971 1981 wp_register_script('wp-food-manager-frontend', esc_url(WPFM_PLUGIN_URL . '/assets/js/frontend.min.js'), array('jquery'), WPFM_VERSION, true); 1972 1982 wp_enqueue_script('wp-food-manager-frontend'); 1973 1983 1974 // Common js 1984 // Common js. 1975 1985 wp_register_script('wp-food-manager-common', esc_url(WPFM_PLUGIN_URL . '/assets/js/common.min.js'), array('jquery'), WPFM_VERSION, true); 1976 1986 wp_enqueue_script('wp-food-manager-common'); 1977 1987 1978 // Food submission forms and validation js 1988 // Food submission forms and validation js. 1979 1989 wp_register_script('wp-food-manager-food-submission', esc_url(WPFM_PLUGIN_URL . '/assets/js/food-submission.min.js'), array('jquery', 'jquery-ui-core', 'jquery-ui-datepicker'), WPFM_VERSION, true); 1980 1990 wp_enqueue_script('wp-food-manager-food-submission'); … … 2006 2016 )); 2007 2017 2008 // Ajax filters js 2018 // Ajax filters js. 2009 2019 wp_register_script('wpfm-ajax-filters', esc_url(WPFM_PLUGIN_URL . '/assets/js/food-ajax-filters.min.js'), $ajax_filter_deps, WPFM_VERSION, true); 2010 2020 wp_localize_script('wpfm-ajax-filters', 'wpfm_ajax_filters', array( … … 2014 2024 )); 2015 2025 2016 // Dashboard 2026 // Dashboard. 2017 2027 wp_register_script('wp-food-manager-food-dashboard', esc_url(WPFM_PLUGIN_URL . '/assets/js/food-dashboard.min.js'), array('jquery'), WPFM_VERSION, true); 2018 2028 wp_localize_script('wp-food-manager-food-dashboard', 'food_manager_food_dashboard', array( … … 2086 2096 } 2087 2097 2088 wp_register_script('wpfm-admin', esc_url(WPFM_PLUGIN_URL) . '/assets/js/admin. min.js', array('jquery', 'jquery-ui-core', 'jquery-ui-datepicker'), WPFM_VERSION, true);2098 wp_register_script('wpfm-admin', esc_url(WPFM_PLUGIN_URL) . '/assets/js/admin.js', array('jquery', 'jquery-ui-core', 'jquery-ui-datepicker'), WPFM_VERSION, true); 2089 2099 wp_localize_script( 2090 2100 'wpfm-admin', … … 2130 2140 wp_enqueue_style('dashicons'); 2131 2141 2132 // File upload - vendor 2142 // File upload - vendor. 2133 2143 if (apply_filters('wpfm_ajax_file_upload_enabled', true)) { 2134 2144 wp_register_script('jquery-iframe-transport', esc_url(WPFM_PLUGIN_URL) . '/assets/js/jquery-fileupload/jquery.iframe-transport.min.js', array('jquery'), '1.8.3', true); … … 2193 2203 switch ($screen->id) { 2194 2204 case 'options-permalink': 2195 include esc_url(WPFM_PLUGIN_DIR) . '/admin/wpfm-permalink-settings.php'; 2205 $file_path = (WPFM_PLUGIN_DIR).'/admin/wpfm-permalink-settings.php'; 2206 if (file_exists($file_path)) { 2207 require_once $file_path; 2208 } else { 2209 // Handle the case where the file doesn't exist. 2210 echo "File not found: $file_path"; 2211 } 2196 2212 break; 2197 2213 } 2198 } 2214 2215 } 2216 2217 2199 2218 2200 2219 /** … … 2258 2277 2259 2278 /** 2260 * Sends user to the setup page on first activation 2279 * Sends user to the setup page on first activation. 2261 2280 * 2262 2281 * @access public … … 2274 2293 } 2275 2294 2276 // Bail if no activation redirect transient is set 2295 // Bail if no activation redirect transient is set. 2277 2296 if (!get_transient('_food_manager_activation_redirect')) { 2278 2297 return; … … 2282 2301 } 2283 2302 2284 // Delete the redirect transient 2303 // Delete the redirect transient. 2285 2304 delete_transient('_food_manager_activation_redirect'); 2286 2305 2287 // Bail if activating from network, or bulk, or within an iFrame 2306 // Bail if activating from network, or bulk, or within an iFrame. 2288 2307 if (is_network_admin() || isset($_GET['activate-multi']) || defined('IFRAME_REQUEST')) { 2289 2308 return; … … 2328 2347 2329 2348 /** 2330 * Callback to set up the metabox 2331 * Mimicks the traditional hierarchical term metabox, but modified with our nonces 2349 * Callback to set up the metabox. 2350 * Mimicks the traditional hierarchical term metabox, but modified with our nonces. 2332 2351 * 2333 2352 * @access public -
wp-food-manager/trunk/includes/wpfm-ajax.php
r2930934 r3022874 4 4 * This file the functionality of ajax for food listing and file upload. 5 5 */ 6 if (!defined('ABSPATH')) exit; // Exit if accessed directly 6 if (!defined('ABSPATH')) exit; // Exit if accessed directly. 7 7 8 8 /** … … 34 34 35 35 /** 36 * Constructor 36 * Constructor. 37 37 */ 38 38 public function __construct() { … … 40 40 41 41 /** 42 * Get food Manager Ajax Endpoint 42 * Get food Manager Ajax Endpoint. 43 43 * 44 44 * @access public -
wp-food-manager/trunk/includes/wpfm-cache-helper.php
r2930934 r3022874 39 39 40 40 /** 41 * Get transient version 41 * Get transient version. 42 42 * 43 * When using transients with unpredictable names, e.g. those containing an md5 44 * hash in the name, we need a way to invalidate them all at once. 45 * 46 * When using default WP transients we're able to do this with a DB query to 47 * delete transients manually. 48 * 49 * With external cache however, this isn't possible. Instead, this function is used 50 * to append a unique string (based on time()) to each transient. When transients 51 * are invalidated, the transient version will increment and data will be regenerated. 43 * When using transients with unpredictable names, e.g. those containing an md5 hash in the name, we need a way to invalidate them all at once. 44 * 45 * When using default WP transients we're able to do this with a DB query to delete transients manually. 46 * 47 * With external cache however, this isn't possible. Instead, this function is used to append a unique string (based on time()) to each transient. When transients are invalidated, the transient version will increment and data will be regenerated. 52 48 * 53 49 * @static 54 * @param string $group Name for the group of transients we need to invalidate 55 * @param boolean $refresh true to force a new version 56 * @return string transient version based on time(), 10 digits 50 * @param string $group Name for the group of transients we need to invalidate. 51 * @param boolean $refresh true to force a new version. 52 * @return string transient version based on time(), 10 digits. 57 53 * @since 1.0.0 58 54 */ … … 87 83 88 84 /** 89 * Get Listings Count from Cache 85 * Get Listings Count from Cache. 90 86 * 91 87 * @static 92 88 * @param string $post_type 93 89 * @param string $status 94 * @param bool $force Force update cache 90 * @param bool $force Force update cache. 95 91 * @return int 96 92 */ … … 99 95 $user_id = get_current_user_id(); 100 96 $transient = "em_" . sanitize_key($status) . "_" . sanitize_key($post_type) . "_count_user_" . absint($user_id); 101 // Set listings_count value from cache if exists, otherwise set to 0 as default 97 // Set listings_count value from cache if exists, otherwise set to 0 as default. 102 98 $status_count = ($cached_count = get_transient($transient)) ? absint($cached_count) : 0; 103 99 104 // $cached_count will be false if transient does not exist 100 // $cached_count will be false if transient does not exist. 105 101 if ($cached_count === false || $force) { 106 102 $count_posts = wp_count_posts(sanitize_key($post_type), 'readable'); 107 103 108 // Default to 0 $status if object does not have a value 104 // Default to 0 $status if object does not have a value. 109 105 $status_count = isset($count_posts->$status) ? absint($count_posts->$status) : 0; 110 106 set_transient($transient, $status_count, DAY_IN_SECONDS * 7); -
wp-food-manager/trunk/includes/wpfm-category-walker.php
r2930934 r3022874 1 1 <?php 2 if (!defined('ABSPATH')) exit; // Exit if accessed directly 2 if (!defined('ABSPATH')) exit; // Exit if accessed directly. 3 3 4 4 /** -
wp-food-manager/trunk/includes/wpfm-custom-post-types.php
r2930934 r3022874 50 50 51 51 /** 52 * Post types 52 * Post types. 53 53 */ 54 54 $singular = esc_html__('Food', 'wp-food-manager'); … … 117 117 118 118 /** 119 * Feeds 119 * Feeds. 120 120 */ 121 121 add_feed('food_feed', array($this, 'food_feed')); 122 122 123 123 /** 124 * Post types 124 * Post types. 125 125 */ 126 126 $singular_menu = esc_html__('Menu', 'wp-food-manager'); … … 176 176 177 177 /** 178 * Post status 178 * Post status. 179 179 */ 180 180 register_post_status('preview', array( … … 199 199 'post_status' => 'publish', 200 200 'ignore_sticky_posts' => 1, 201 'posts_per_page' => isset($_GET['posts_per_page']) ? absint($_GET['posts_per_page']) : 10,201 'posts_per_page' => isset($_GET['posts_per_page']) ? absint($_GET['posts_per_page']) : -1, 202 202 'tax_query' => array(), 203 203 'meta_query' => array() … … 266 266 267 267 /** 268 * In order to make sure that the feed properly queries the 'food_listing' type 268 * In order to make sure that the feed properly queries the 'food_listing' type. 269 269 * 270 270 * @access public … … 274 274 */ 275 275 public function add_feed_query_args($wp) { 276 // Let's leave if not the food feed 276 // Let's leave if not the food feed. 277 277 if (!isset($wp->query_vars['feed']) || 'food_feed' !== $wp->query_vars['feed']) { 278 278 return; … … 292 292 293 293 /** 294 * Add a custom namespace to the food feed 294 * Add a custom namespace to the food feed. 295 295 * 296 296 * @access public … … 303 303 304 304 /** 305 * Add custom data to the food feed 305 * Add custom data to the food feed. 306 306 * 307 307 * @access public … … 338 338 339 339 /** 340 * Generate location data if a post is updated 340 * Generate location data if a post is updated. 341 341 * 342 342 * @access public … … 357 357 358 358 /** 359 * Maybe set menu_order if the featured status of a food is changed 359 * Maybe set menu_order if the featured status of a food is changed. 360 360 * 361 361 * @access public … … 383 383 384 384 /** 385 * After importing via WP ALL Import, add default meta data 385 * After importing via WP ALL Import, add default meta data. 386 386 * 387 387 * @access public … … 398 398 399 399 /** 400 * When deleting a food, delete its attachments 400 * When deleting a food, delete its attachments. 401 401 * 402 402 * @access public -
wp-food-manager/trunk/includes/wpfm-custom-taxonomies.php
r2930934 r3022874 2 2 3 3 /** 4 * Taxonomies 4 * Taxonomies. 5 5 */ 6 6 if (get_option('food_manager_enable_categories', true)) { -
wp-food-manager/trunk/includes/wpfm-data-cleaner.php
r2930934 r3022874 2 2 3 3 /** 4 * Defines a class with methods for cleaning up plugin data. To be used when 5 * the plugin is deleted. 4 * Defines a class with methods for cleaning up plugin data. To be used when the plugin is deleted. 6 5 * 7 6 * @package Core … … 77 76 78 77 /** 79 * Transient names (as MySQL regexes) to be deleted. The prefixes 80 * "_transient_" and "_transient_timeout_" will be prepended. 78 * Transient names (as MySQL regexes) to be deleted. The prefixes "_transient_" and "_transient_timeout_" will be prepended. 81 79 * 82 80 * @var $transients … … 381 379 382 380 /** 383 * Cleanup cron jobs. Note that this should be done on deactivation, but 384 * doing it here as well for safety. 381 * Cleanup cron jobs. Note that this should be done on deactivation, but doing it here as well for safety. 385 382 * 386 383 * @access private -
wp-food-manager/trunk/includes/wpfm-date-time.php
r2930934 r3022874 4 4 } 5 5 /** 6 * WPFM_Date_Time 6 * WPFM_Date_Time. 7 7 */ 8 8 class WPFM_Date_Time { … … 34 34 35 35 /** 36 * Get datepicker format function will return all the date formats for datepicker 36 * Get datepicker format function will return all the date formats for datepicker. 37 37 * 38 38 * @param null … … 52 52 53 53 /** 54 * Function get_default_date_formats will return all the date formats 55 * This function has both type of format jquery-ui-datepicker as well as for php date format 56 * 57 * @access public 58 * @return array Date formats 54 * Function get_default_date_formats will return all the date formats. 55 * This function has both type of format jquery-ui-datepicker as well as for php date format. 56 * 57 * @access public 58 * @return array Date formats. 59 59 * @since 1.0.0 60 60 **/ … … 76 76 77 77 /** 78 * This function will parse the date to dbformatted date 79 * Convert date and time value into DB formatted format and save eg. 1970-01-01 00:00:00 80 * php date format parsing has error so we need to parse via our custom parsing method 78 * This function will parse the date to dbformatted date. 79 * Convert date and time value into DB formatted format and save eg. 1970-01-01 00:00:00. 80 * php date format parsing has error so we need to parse via our custom parsing method. 81 81 * Ref. https://stackoverflow.com/questions/6668223/php-date-parse-from-format-alternative-in-php-5-2 82 82 * … … 88 88 */ 89 89 public static function date_parse_from_format($format, $date) { 90 // reverse engineer date formats 90 // reverse engineer date formats. 91 91 $keys = array( 92 92 // Year with 4 Digits … … 124 124 ); 125 125 126 // Convert format string to regex 126 // Convert format string to regex. 127 127 $regex = ''; 128 128 $chars = str_split($format); … … 168 168 169 169 /** 170 * This function will return php formatted date format from datepicker formatted date 171 * For eg. in date picker date format is yy-mm-dd where this format in php will be Y-m-d 170 * This function will return php formatted date format from datepicker formatted date. 171 * For eg. in date picker date format is yy-mm-dd where this format in php will be Y-m-d. 172 172 * So, We need one central function will allow to convert datepicker format in to php formatted format. 173 173 * … … 188 188 * @access public 189 189 * @param string $time time in 24 hour or 12 hour. 190 * @return string it will return time in DB formatted 24 hours time 190 * @return string it will return time in DB formatted 24 hours time. 191 191 * @since 1.0.0 192 192 */ … … 201 201 * @access public 202 202 * @param string $date and $time 203 * @return string it will return time in DB formatted date and time 203 * @return string it will return time in DB formatted date and time. 204 204 * @since 1.0.0 205 205 */ … … 207 207 if (empty($date)) return; 208 208 209 // Get date and time setting defined in admin panel Food listing -> Settings -> Date & Time formatting 209 // Get date and time setting defined in admin panel Food listing -> Settings -> Date & Time formatting. 210 210 $datepicker_date_format = self::get_datepicker_format(); 211 211 212 // Covert datepicker format into php date() function date format 212 // Covert datepicker format into php date() function date format. 213 213 $php_date_format = self::get_view_date_format_from_datepicker_date_format($datepicker_date_format); 214 214 $time = self::get_db_formatted_time($time); 215 215 216 // Convert date and time value into DB formatted format and save eg. 1970-01-01 00:00:00 216 // Convert date and time value into DB formatted format and save eg. 1970-01-01 00:00:00. 217 217 $db_date_time = self::date_parse_from_format(esc_attr($php_date_format) . ' H:i:s', esc_attr($date) . ' ' . $time); 218 218 return $db_date_time; … … 220 220 221 221 /** 222 * Get wp food manager view date format 223 * This format is set by user from food listing -> settings -> date and time 222 * Get wp food manager view date format. 223 * This format is set by user from food listing -> settings -> date and time. 224 224 * 225 225 * @access public … … 233 233 234 234 /** 235 * Get Wp food manager date admin setting where you can get array of dummy date 236 * The key of each value will be a php date format which is generated from the get_default_date_formats() 235 * Get Wp food manager date admin setting where you can get array of dummy date. 236 * The key of each value will be a php date format which is generated from the get_default_date_formats(). 237 237 * It will just make array for dropdown for showing dummy date and key as php formatted so we can save it 238 * Currentrly it is used at food listing -> settings -> date and time - datepicker format 239 * In wp food manager settings we don't have way to generate html so we have generated array for select option 238 * Currentrly it is used at food listing -> settings -> date and time - datepicker format. 239 * In wp food manager settings we don't have way to generate html so we have generated array for select option. 240 240 * 241 241 * @access public … … 256 256 257 257 /** 258 * Get food manager timezone setting defined in food listing -> settings 258 * Get food manager timezone setting defined in food listing -> settings. 259 259 * 260 260 * @access public … … 284 284 if (empty($tzstring)) { 285 285 286 // Create a UTC+- zone if no timezone string exists 286 // Create a UTC+- zone if no timezone string exists. 287 287 $check_zone_info = false; 288 288 if (0 == $current_offset) … … 326 326 327 327 /** 328 * current_timestamp_from_food_timezone will return the current timestamp according to the 329 * timezone selected in food or passed in argument. 328 * current_timestamp_from_food_timezone will return the current timestamp according to the timezone selected in food or passed in argument. 330 329 * 331 330 * @access public 332 331 * @param string $food_timezone 333 * @return int|null Timestamp or null if food_timezone is empty 332 * @return int|null Timestamp or null if food_timezone is empty. 334 333 * @since 1.0.0 335 334 */ -
wp-food-manager/trunk/includes/wpfm-filter-hooks.php
r2930934 r3022874 1 1 <?php 2 if (!defined('ABSPATH')) exit; // Exit if accessed directly 2 if (!defined('ABSPATH')) exit; // Exit if accessed directly. 3 3 4 4 /** … … 31 31 /** 32 32 * __construct function. 33 * get the plugin hooked in and ready 33 * get the plugin hooked in and ready. 34 34 * 35 35 * @since 1.0.1 36 36 */ 37 37 public function __construct() { 38 // Writepanel's filters 38 // Writepanel's filters. 39 39 add_filter('manage_food_manager_menu_posts_columns', array($this, 'set_shortcode_copy_columns')); 40 40 add_filter('manage_edit-food_manager_columns', array($this, 'columns')); … … 43 43 add_filter('post_row_actions', array($this, 'row_actions')); 44 44 45 // wpfm custom post-types 45 // wpfm custom post-types. 46 46 add_filter('the_content', array($this, 'food_content')); 47 47 add_filter('the_content', array($this, 'food_menu_content')); … … 50 50 add_filter('wp_insert_post_data', array($this, 'fix_post_name'), 10, 2); 51 51 52 // wpfm functions 52 // wpfm functions. 53 53 add_filter('upload_dir', array($this, 'upload_dir')); 54 54 add_filter('wp_terms_checklist_args', 'wpfm_term_radio_checklist_for_food_type'); … … 56 56 add_filter('manage_edit-food_manager_category_columns', array($this, 'display_custom_taxonomy_image_column_heading_for_food_category')); 57 57 58 // wpfm core file 58 // wpfm core file. 59 59 add_filter('pre_option_wpfm_enable_categories', '__return_true'); 60 60 add_filter('pre_option_wpfm_enable_food_types', '__return_true'); … … 132 132 133 133 /** 134 * Fix post name when wp_update_post changes it 134 * Fix post name when wp_update_post changes it. 135 135 * 136 136 * @access public … … 181 181 182 182 /** 183 * Add Food menu content 183 * Add Food menu content. 184 184 * 185 185 * @access public … … 209 209 210 210 /** 211 * Add extra content when showing food content 211 * Add extra content when showing food content. 212 212 * 213 213 * @access public … … 254 254 255 255 /** 256 * column Sortable 256 * column Sortable. 257 257 * 258 258 * @access public … … 268 268 269 269 /** 270 * Custom columns 270 * Custom columns. 271 271 * 272 272 * @access public … … 293 293 294 294 /** 295 * Set Copy Shortcode 295 * Set Copy Shortcode. 296 296 * 297 297 * @access public … … 302 302 public function set_shortcode_copy_columns($columns) { 303 303 $columns['shortcode'] = __('Shortcode', 'wp-food-manager'); 304 $columns['thumbnail'] = __('Images', 'wp-food-manager'); 304 305 return $columns; 305 306 } -
wp-food-manager/trunk/includes/wpfm-install.php
r2930934 r3022874 8 8 9 9 /** 10 * Install WP Food Manager 10 * Install WP Food Manager. 11 11 * 12 12 * @access public … … 19 19 self::default_terms(); 20 20 21 // Redirect to setup screen for new installs 21 // Redirect to setup screen for new installs. 22 22 if (!get_option('food_manager_version')) { 23 23 set_transient('_food_manager_activation_redirect', 1, HOUR_IN_SECONDS); … … 29 29 } 30 30 31 // Update legacy options 31 // Update legacy options. 32 32 if (false === get_option('food_manager_add_food_page_id', false) && get_option('food_manager_submit_page_slug')) { 33 33 $page_id = get_page_by_path(esc_sql(get_option('food_manager_submit_page_slug')))->ID; … … 45 45 46 46 /** 47 * Update WP Food Manager 47 * Update WP Food Manager. 48 48 * 49 49 * @access public … … 54 54 global $wpdb; 55 55 56 // 1.0.0 change field option name 56 // 1.0.0 change field option name. 57 57 if (!empty(get_option('food_manager_form_fields', true))) { 58 58 $all_fields = get_option('food_manager_form_fields', true); … … 72 72 73 73 /** 74 * Init user roles 74 * Init user roles. 75 75 * 76 76 * @access private … … 99 99 100 100 /** 101 * Get the core capabilities 101 * Get the core capabilities. 102 102 * 103 103 * @access private -
wp-food-manager/trunk/readme.txt
r2968555 r3022874 5 5 Tags: food menu, restaurant menu, food ordering, restaurant, table reservation, food delivery, food pickup, cafe menu, food order,food,menu 6 6 Requires at least: 5.0 7 Tested up to: 6. 3.18 Stable tag: 1.0. 47 Tested up to: 6.4.2 8 Stable tag: 1.0.5 9 9 Requires PHP: 5.6 10 10 License: GPLv3 … … 200 200 201 201 == Changelog == 202 203 = 1.0.5 [ 26th Dec 2023 ] = 204 205 Fixed : Issue related to add to cart option is resolved 206 Fixed : Issues related to food description editor options formatting is resolved on food detail page 207 Fixed: Added dependency related to food menu on other add-ons 208 Fixed : Food listing page issue is resolved when no filter is available. 209 Fixed : The title of the food listing page is made dynamic. 210 Fixed : Code for the gallery addon is added on the food dashboard 211 Fixed : RSS can load 10 food items from the food listing page. 212 Fixed : Editing of food nutrition and ingredients is now displayed after updating it from the frontside. 213 Fixed : Vertical menu is added in the food dashboard on the frontside. 214 Fixed : Images of the menu are visible on the frontside. 215 Fixed : A hook is added in the Online Order addon. 216 Fixed : Food Listing frontside page UI is changed. 217 Fixed : Topping is visible on the frontside even if there is no value added in a row. 218 Fixed : Tooltip is removed from everywhere on the frontside. 219 Fixed : Properly aligned all the food details on the food listing page at frontside. 220 Fixed : Thumbnail image field is added at the admin side of the food item in the menu list page. 221 Fixed : Vertical menu on the food dashboard page is properly displayed at the frontside. 222 Fixed : A warning message issue is fixed for a food item with no pricing in the menu. 223 Fixed : Menu is now appearing properly on the restaurant detail page. 224 Fixed : Issue related to adding nutrition and ingredients is fixed. 225 Fixed : Stock status error is resolved on the admin side. 226 Fixed : Different font sizes for add/edit title are added in the food field option at the frontside. 227 Fixed : Frontside Tag is now working at cloning time 228 Fixed : Issue related to finding a matching record at the frontside of the food page while filtering is now solved. 229 Fixed : Pagination of the food dashboard is now working properly at frontside. 230 Fixed : Warning message to add topping on the food detail page is now resolved. 231 Fixed : File related to the time field is added. 232 Fixed : Issue with the UI of the field editor’s date format is fixed at the admin side. 233 Fixed : No more warnings on the food detail page when using toppings. 234 Fixed : Nutrition and Ingredients are now accepting the decimal value 235 Fixed : Youtube channel link is added in the setup wizard and setting tab. 236 Fixed : Issue related to adding or editing the food option with various themes is fixed from the frontside. 237 Fixed : Load More option is not showing duplicate images anymore on the food listing page at the frontside. 238 Fixed : Enable Ingredient & Nutrition options are working on the Add Food page of the frontside. 239 Fixed : Error related to Permalink time setting is fixed on the admin side. 240 Fixed : No more warnings are appearing during the debug log at the frontside of the Adding Food page. 241 Fixed : Extra topping design of the title is fixed on the frontend side. 242 Fixed : Add to cart option is now appearing properly at the frontside Add to cart even if the food item is not selected. 243 Fixed : Issue with the display of time in Food Edit on frontside is resolved 202 244 203 245 = 1.0.4 [ 26th July 2023 ] = -
wp-food-manager/trunk/shortcodes/wpfm-shortcodes.php
r2930934 r3022874 5 5 * This file include shortcode of food listing, food submit form, and food dashboard, etc. 6 6 */ 7 if (!defined('ABSPATH')) exit; // Exit if accessed directly 7 if (!defined('ABSPATH')) exit; // Exit if accessed directly. 8 8 9 9 /** … … 48 48 49 49 /** 50 * Show the food submission form 50 * Show the food submission form. 51 51 * 52 52 * @access public … … 59 59 60 60 /** 61 * Handles actions on food dashboard 61 * Handles actions on food dashboard. 62 62 * 63 63 * @access public … … 70 70 $food_id = absint($_REQUEST['food_id']); 71 71 try { 72 // Get food 72 // Get food. 73 73 $food = get_post($food_id); 74 // Check ownership 74 // Check ownership. 75 75 if (!food_manager_user_can_edit_food($food_id)) { 76 76 throw new Exception(__('Invalid ID', 'wp-food-manager')); … … 79 79 case 'delete': 80 80 $foods_status = get_post_status($food_id); 81 // Trash it 81 // Trash it. 82 82 wp_trash_post($food_id); 83 // Message 83 // Message. 84 84 if (!in_array($foods_status, ['trash'])) { 85 85 $this->food_dashboard_message = '<div class="food-manager-message wpfm-alert wpfm-alert-danger">' . sprintf(__('%s has been deleted.', 'wp-food-manager'), esc_html($food->post_title)) . '</div>'; … … 97 97 break; 98 98 case 'relist': 99 // redirect to post page 99 // redirect to post page. 100 100 wp_redirect(add_query_arg(array('food_id' => absint($food_id)), food_manager_get_permalink('add_food'))); 101 101 break; … … 112 112 113 113 /** 114 * Handle actions which need to be run before the shortcode e.g. post actions 114 * Handle actions which need to be run before the shortcode e.g. post actions. 115 115 * 116 116 * @access public … … 125 125 126 126 /** 127 * Shortcode which lists the logged-in user's foods 127 * Shortcode which lists the logged-in user's foods. 128 128 * 129 129 * @access public … … 150 150 if (!empty($_REQUEST['action'])) { 151 151 $action = sanitize_title($_REQUEST['action']); 152 // Show alternative content if a plugin wants to 152 // Show alternative content if a plugin wants to. 153 153 if (has_action('food_manager_food_dashboard_content_' . $action)) { 154 154 do_action('food_manager_food_dashboard_content_' . $action, $atts); … … 167 167 } 168 168 169 // If not show the food dashboard 169 // If not show the food dashboard. 170 170 $args = apply_filters('food_manager_get_dashboard_foods_args', array( 171 171 'post_type' => 'food_manager', … … 236 236 extract($atts = shortcode_atts(apply_filters('food_manager_output_foods_defaults', array( 237 237 'per_page' => get_option('food_manager_per_page'), 238 'orderby' => 'me nu_order', // meta_value238 'orderby' => 'meta_value', // meta_value 239 239 'order' => 'ASC', 240 240 // Filters + cats … … 248 248 'show_pagination' => false, 249 249 'show_more' => true, 250 // Limit what foods are shown based on category and type 250 // Limit what foods are shown based on category and type. 251 251 'categories' => '', 252 252 'food_types' => '', 253 253 'featured' => null, // True to show only featured, false to hide featured, leave null to show both. 254 254 'cancelled' => null, // True to show only cancelled, false to hide cancelled, leave null to show both/use the settings. 255 // Default values for filters 255 // Default values for filters. 256 256 'location' => '', 257 257 'keywords' => '', 258 258 'selected_category' => '', 259 'selected_food_type' => '', 260 'layout_type' => 'all', 259 'selected_food_type' => '', 260 'layout_type' => 'all', 261 'title' => __('Foods', 'wp-food-manager'), 261 262 )), $atts)); 262 263 263 //Categories 264 //Categories. 264 265 if (!get_option('food_manager_enable_categories')) { 265 266 $show_categories = false; 266 267 } 267 268 268 //food types 269 //food types. 269 270 if (!get_option('food_manager_enable_food_types')) { 270 271 $show_food_types = false; 271 272 } 272 273 273 //food tags 274 //food tags. 274 275 if (!get_option('food_manager_enable_food_tags')) { 275 276 $show_food_tags = false; 276 277 } 277 278 278 // String and bool handling 279 // String and bool handling. 279 280 $show_filters = $this->string_to_bool($show_filters); 280 281 $show_categories = $this->string_to_bool($show_categories); … … 286 287 $show_pagination = $this->string_to_bool($show_pagination); 287 288 288 // Order by meta value and it will take default sort order by start date of food 289 // Order by meta value and it will take default sort order by start date of food. 289 290 if (is_null($orderby) || empty($orderby)) { 290 $orderby = 'me nu_order'; //meta_value291 $orderby = 'meta_value'; //meta_value 291 292 } 292 293 … … 299 300 } 300 301 301 // Array handling 302 // Array handling. 302 303 $categories = is_array($categories) ? $categories : array_filter(array_map('trim', explode(',', $categories))); 303 304 $food_types = is_array($food_types) ? $food_types : array_filter(array_map('trim', explode(',', $food_types))); 304 305 305 // Get keywords, location, category and food type from query string if set 306 // Get keywords, location, category and food type from query string if set. 306 307 if (!empty($_GET['search_keywords'])) { 307 308 $keywords = sanitize_text_field($_GET['search_keywords']); … … 335 336 'keywords' => $keywords, 336 337 )); 337 get_food_manager_template('food-listings-start.php', array('layout_type' => $layout_type ));338 get_food_manager_template('food-listings-start.php', array('layout_type' => $layout_type, 'title' => $title)); 338 339 get_food_manager_template('food-listings-end.php'); 339 340 if (!$show_pagination && $show_more) { … … 341 342 } 342 343 } else { 343 $foods = get_food_ managers(apply_filters('food_manager_output_foods_args', array(344 $foods = get_food_listings(apply_filters('food_manager_output_foods_args', array( 344 345 'search_keywords' => $keywords, 345 346 'search_categories' => $categories, … … 400 401 401 402 /** 402 * Output content of food categories 403 * Output content of food categories. 403 404 * 404 405 * @access public … … 416 417 417 418 /** 418 * Output content of food types 419 * Output content of food types. 419 420 * 420 421 * @access public … … 433 434 434 435 /** 435 * Get string as a bool 436 * Get string as a bool. 436 437 * 437 438 * @access public … … 481 482 482 483 /** 483 * food Summary shortcode 484 * food Summary shortcode. 484 485 * 485 486 * @access public … … 523 524 524 525 /** 525 * output food menu by menu id 526 * output food menu by menu id. 526 527 * 527 528 * @access public -
wp-food-manager/trunk/templates/content-food_manager.php
r2930934 r3022874 22 22 <div class="wpfm-food-details"> 23 23 <div class="wpfm-food-title"> 24 <h3 class="wpfm-heading-text"><?php echo esc_html(get_the_title()); ?></h3> 25 <div class="wpfm-food-price"><?php display_food_price_tag(); ?></div> 24 <h3 class="wpfm-heading-text"><?php echo esc_html(get_the_title()); ?> <?php display_food_veg_nonveg_icon_tag(); ?></h3> 26 25 </div> 27 <div class="wpfm-food-type-flex-container"> 26 <div class="wpfm-food-price"><?php display_food_price_tag(); ?></div> 27 <!-- <div class="wpfm-food-type-flex-container"> 28 28 <?php 29 29 if (get_option('food_manager_enable_food_types') && get_food_type()) { … … 31 31 <div class="wpfm-food-type"><?php display_food_type(); ?></div> 32 32 <?php } ?> 33 <?php display_food_veg_nonveg_icon_tag(); ?> 34 </div> 33 </div> --> 35 34 <?php do_action('food_list_overview_after'); ?> 36 35 </div> … … 46 45 <div class="wpfm-food-layout-wrapper"> 47 46 <div <?php food_manager_class(''); ?>> 48 <a href="<?php display_food_permalink(); ?>" class="wpfm-food-action-url food-style-color <?php echo esc_attr($food_type); ?>"> 47 <a href="<?php display_food_permalink(); ?>" class="wpfm-food-action-url food-style-color <?php echo esc_attr($food_type); ?>"> 49 48 <div class="wpfm-food-banner"> 50 49 <div class="wpfm-food-banner-img" style="background-image: url('<?php echo esc_url($food_thumbnail) ?>')"></div> 51 50 </div> 51 </a> 52 52 <div class="wpfm-food-infomation"> 53 53 <div class="wpfm-food-details"> 54 <?php if (get_stock_status() == 'fm_outofstock') { ?> 55 <div class="food-stock-status"> 56 <?php display_stock_status(); ?> 54 <a href="<?php display_food_permalink(); ?>" class="wpfm-food-action-url food-style-color <?php echo esc_attr($food_type); ?>"> 55 <?php if (get_stock_status() == 'fm_outofstock') { ?> 56 <div class="food-stock-status"> 57 <?php display_stock_status(); ?> 58 </div> 59 <?php } ?> 60 <div class="wpfm-food-title"> 61 <h3 class="wpfm-heading-text"> 62 <?php 63 $out = strlen(get_the_title()) > 50 ? substr(get_the_title(), 0, 50) . "..." : get_the_title(); 64 echo esc_html($out); ?> <?php display_food_veg_nonveg_icon_tag(); ?></h3> 65 57 66 </div> 58 <?php } ?>59 <div class="wpfm-food-title">60 <h3 class="wpfm-heading-text">61 <?php62 $out = strlen(get_the_title()) > 50 ? substr(get_the_title(), 0, 50) . "..." : get_the_title();63 echo esc_html($out); ?> </h3>64 67 <div class="wpfm-food-price"><?php display_food_price_tag(); ?></div> 65 </ div>66 < div class="wpfm-food-type-flex-container">67 <?php68 </a> 69 <!--<div class="wpfm-food-type-flex-container"> 70 <?php 68 71 if (get_option('food_manager_enable_food_types') && get_food_type()) { 69 72 ?> 70 73 <div class="wpfm-food-type"><?php display_food_type(); ?></div> 71 <?php } ?> 72 <?php display_food_veg_nonveg_icon_tag(); ?>73 </div> 74 <?php } ?> 75 76 </div>--> 74 77 <?php do_action('food_list_overview_after'); ?> 75 78 </div> 76 79 </div> 77 </a>80 78 81 </div> 79 82 </div> 80 83 </div> 81 <?php } 84 <?php 85 } -
wp-food-manager/trunk/templates/content-single-food_manager.php
r2930934 r3022874 13 13 <?php else : 14 14 /** 15 * single_food_listing_start hook 15 * single_food_listing_start hook. 16 16 */ 17 17 do_action('single_food_listing_start'); … … 97 97 </div> 98 98 <?php endif; ?> 99 </div>100 <form class="wpfm- single-food-body-content wpfm-toppings" method="post" action="">99 100 <form class="wpfm-toppings" id="wpfm_single_food_topping_form" method="post" action="" data-product-attribute='<?php echo apply_filters( 'wpfm_food_toppings_form_variation', '' ); ?>'> 101 101 <?php 102 102 $ext_options = get_post_meta(get_the_ID(), '_food_toppings', true); … … 136 136 $field_required = ''; 137 137 echo "<div class='wpfm-input-field-common " . esc_attr($more_class) . "'>"; 138 echo '<label for="' . esc_attr(str_replace(" ", "-", strtolower($ext_option['_topping_name']))) . '"><strong>' . esc_html($ext_option['_topping_name']) . '</strong></label>'; 139 if (!empty($ext_option['_topping_description'])) { 138 echo '<h4 class="wpfm-heading-text">' . esc_html($ext_option['_topping_name']) . ''; 139 if( isset($ext_option['_topping_required']) && $ext_option['_topping_required'] === 'yes') { 140 echo '<span class="wpfm-require-mark"> *</span></h4>'; 141 } else { 142 echo '</h4>'; 143 } 144 if( isset($ext_option['_topping_description']) && !empty($ext_option['_topping_description'])) { 140 145 echo '<div class="wpfm-input-description">' . wp_kses_post($ext_option['_topping_description']) . '</div>'; 141 146 } … … 189 194 ?> 190 195 </form> 196 <?php echo do_action('food_manager_addons_html');?> 197 </div> 191 198 <!-- Additional Info Block Start --> 192 199 <?php … … 616 623 <!-- Main if condition end --> 617 624 </div> 618 <!-- / wpfm-wrapper end -->625 <!-- / wpfm-wrapper end --> 619 626 </div> 620 <!-- / wpfm-main end -->627 <!-- / wpfm-main end --> 621 628 </div> 629 630 <!-- add to cart notification --> 631 <?php do_action('wpfm_food_manager_single_food_listing_after'); ?> 632 622 633 <!-- override the script if needed --> 623 634 <script type="text/javascript"> -
wp-food-manager/trunk/templates/content-single-food_manager_menu.php
r2930934 r3022874 1 1 <?php 2 2 global $post; 3 //echo $post->ID; 3 4 $featured_img_url = get_the_post_thumbnail_url(get_the_ID(), 'full'); 4 5 if (isset($featured_img_url) && empty($featured_img_url)) { … … 7 8 $featured_img_url = get_the_post_thumbnail_url(get_the_ID(), 'full'); 8 9 } 10 9 11 $term = get_queried_object(); 10 12 $term_id = !empty($term) ? get_post_meta($term->ID, '_food_item_cat_ids', true) : ''; … … 12 14 $image_id = !empty($term_id) ? get_term_meta($term_id[0], 'food_cat_image_id', true) : ''; 13 15 $image_url = wp_get_attachment_image_src($image_id, 'full'); 16 17 18 if ( 'food_manager_menu' == get_post_type() ) { 19 $featured_img_url = get_the_post_thumbnail_url(get_the_ID(), 'full'); 20 } elseif(isset($menu_id) && !empty($menu_id) ) { 21 $featured_img_url = get_the_post_thumbnail_url($menu_id, 'full'); 22 } 14 23 ?> 15 <div class="wpfm-main wpfm-single-food-menu-page"> 16 <?php if (!empty($featured_img_url)) : ?> 17 <div class="wpfm-single-food-image"> 18 <img itemprop="image" content="<?php echo esc_url($featured_img_url); ?>" src="<?php echo esc_url($featured_img_url); ?>" alt=""> 19 </div> 20 <?php endif; ?> 21 <?php the_content(); ?> 22 <h3> 23 <?php the_title(); 24 $wpfm_radio_icons = get_post_meta(get_the_ID(), 'wpfm_radio_icons', true); 25 $without_food_str = str_replace("wpfm-menu-", "", $wpfm_radio_icons); 26 $without_dashicons_str = str_replace("dashicons-", "", $wpfm_radio_icons); 27 $data_food_menu = ucwords(str_replace("-", " ", $without_dashicons_str)); 28 $data_food_menu2 = ucwords(str_replace("-", " ", $without_food_str)); 29 if (wpfm_begnWith($wpfm_radio_icons, "dashicons")) { 30 if ($wpfm_radio_icons) { 31 echo "<span class='wpfm-front-radio-icon food-icon' data-food-menu='" . esc_attr($data_food_menu2) . "'><span class='wpfm-menu dashicons " . esc_attr($wpfm_radio_icons) . "'></span></span>"; 32 } 33 } else { 34 if ($wpfm_radio_icons) { 35 if ($wpfm_radio_icons == 'wpfm-menu-fast-cart') { 36 echo '<span class="wpfm-front-radio-icon food-icon" data-food-menu="' . esc_attr($data_food_menu2) . '"><span class="wpfm-menu ' . esc_attr($wpfm_radio_icons) . '"><span class="path1"></span><span class="path2"></span><span class="path3"></span><span class="path4"></span><span class="path5"></span></span></span>'; 37 } elseif ($wpfm_radio_icons == 'wpfm-menu-rice-bowl') { 38 echo '<span class="wpfm-front-radio-icon food-icon" data-food-menu="' . esc_attr($data_food_menu2) . '"><span class="wpfm-menu ' . esc_attr($wpfm_radio_icons) . '"><span class="path1"></span><span class="path2"></span><span class="path3"></span><span class="path4"></span></span></span>'; 39 } else { 40 echo "<span class='wpfm-front-radio-icon food-icon' data-food-menu='" . esc_attr($data_food_menu2) . "'><span class='wpfm-menu " . esc_attr($wpfm_radio_icons) . "'></span></span>"; 24 25 <div class="wpfm-main wpfm-single-food-menu-page wpfm-accordion-body"> 26 27 <?php if ( 'food_manager_menu' == get_post_type() ) { 28 the_content(); ?> 29 <h3> 30 <?php the_title(); 31 $wpfm_radio_icons = get_post_meta(get_the_ID(), 'wpfm_radio_icons', true); 32 $without_food_str = str_replace("wpfm-menu-", "", $wpfm_radio_icons); 33 $without_dashicons_str = str_replace("dashicons-", "", $wpfm_radio_icons); 34 $data_food_menu = ucwords(str_replace("-", " ", $without_dashicons_str)); 35 $data_food_menu2 = ucwords(str_replace("-", " ", $without_food_str)); 36 if (wpfm_begnWith($wpfm_radio_icons, "dashicons")) { 37 if ($wpfm_radio_icons) { 38 echo "<span class='wpfm-front-radio-icon food-icon' data-food-menu='" . esc_attr($data_food_menu2) . "'><span class='wpfm-menu dashicons " . esc_attr($wpfm_radio_icons) . "'></span></span>"; 39 } 40 } else { 41 if ($wpfm_radio_icons) { 42 if ($wpfm_radio_icons == 'wpfm-menu-fast-cart') { 43 echo '<span class="wpfm-front-radio-icon food-icon" data-food-menu="' . esc_attr($data_food_menu2) . '"><span class="wpfm-menu ' . esc_attr($wpfm_radio_icons) . '"><span class="path1"></span><span class="path2"></span><span class="path3"></span><span class="path4"></span><span class="path5"></span></span></span>'; 44 } elseif ($wpfm_radio_icons == 'wpfm-menu-rice-bowl') { 45 echo '<span class="wpfm-front-radio-icon food-icon" data-food-menu="' . esc_attr($data_food_menu2) . '"><span class="wpfm-menu ' . esc_attr($wpfm_radio_icons) . '"><span class="path1"></span><span class "path2"></span><span class="path3"></span><span class="path4"></span></span></span>'; 46 } else { 47 echo "<span class 'wpfm-front-radio-icon food-icon' data-food-menu='" . esc_attr($data_food_menu2) . "'><span class='wpfm-menu " . esc_attr($wpfm_radio_icons) . "'></span></span>"; 48 } 41 49 } 42 50 } 43 } 44 ?> 45 </h3> 46 <?php 51 ?> 52 </h3> 53 <?php } 47 54 if (!empty($featured_img_url)) { 48 echo "<div class='wpfm-single-food-menu-category-banner' style='display: none;'>";55 echo "<div class='wpfm-single-food-menu-category-banner'>"; 49 56 echo "<div class='wpfm-single-food-menu-category-title'>" . esc_html($term_name) . "</div>"; 50 57 echo "<img src='" . esc_url($featured_img_url) . "' alt='" . esc_attr($term_name) . "'>"; … … 55 62 echo "<img src='" . esc_url($image_url[0]) . "' alt='" . esc_attr($term_name) . "'>"; 56 63 echo "</div>"; 57 } else {64 } elseif (!empty($term_name) && is_array($term_name)) { 58 65 echo "<h2>" . esc_html($term_name) . "</h2>"; 59 66 } 60 $po_ids = get_post_meta($post->ID, '_food_item_ids', true); 67 68 if ( 'food_manager_menu' == get_post_type() ) { 69 $po_ids = get_post_meta($post->ID, '_food_item_ids', true); 70 } elseif(isset($menu_id) && !empty($menu_id) ){ 71 $po_ids = get_post_meta($menu_id, '_food_item_ids', true); 72 } 73 74 61 75 if (!empty($po_ids)) { 62 76 $food_listings = get_posts(array( … … 74 88 $sale_price = get_post_meta($food_listing->ID, '_food_sale_price', true); 75 89 $regular_price = get_post_meta($food_listing->ID, '_food_price', true); 90 91 $formatted_sale_price = ''; // Initialize the variable 92 $formatted_regular_price = ''; // Initialize the variable 93 76 94 if (!empty($sale_price)) { 77 95 $formatted_sale_price = number_format($sale_price, $price_decimals, $price_decimal_separator, $price_thousand_separator); … … 87 105 echo "<div class='fm-food-menu-title'><strong>" . esc_html($food_listing->post_title) . "</strong></div>"; 88 106 echo "<div class='fm-food-menu-pricing'>"; 107 89 108 if (!empty($regular_price) && !empty($sale_price)) { 90 109 $f_regular_price = sprintf($price_format, '<span class="food-manager-Price-currencySymbol">' . esc_html(get_food_manager_currency_symbol()) . '</span>', $formatted_sale_price); 91 110 $f_sale_price = sprintf($price_format, '<span class="food-manager-Price-currencySymbol">' . esc_html(get_food_manager_currency_symbol()) . '</span>', $formatted_regular_price); 92 echo "<del> " . $f_sale_price . "</del> <ins><span class='food-manager-Price-currencySymbol'><strong>" . $f_regular_price . "</strong></ins>"; 93 } 94 if (empty($sale_price)) { 111 echo "<del> " . $f_sale_price . "</del> <ins><span class='food-manager-Price-currencySymbol'><strong>" . $f_regular_price . "</strong></span></ins>"; 112 } elseif (!empty($regular_price)) { 95 113 echo sprintf($price_format, '<span class="food-manager-Price-currencySymbol">' . esc_html(get_food_manager_currency_symbol()) . '</span>', $formatted_regular_price); 96 114 } 97 115 echo "</div>"; 98 echo "< a>";116 echo "</a>"; 99 117 echo $menu_food_desc; 118 do_action('food_menu_list_overview_after', $food_listing->ID); 100 119 echo "</div>"; 101 120 } … … 104 123 ?> 105 124 </div> 125 <!-- add to cart notification --> 126 <?php do_action('wpfm_food_manager_food_menu_listing_after'); ?> -
wp-food-manager/trunk/templates/food-dashboard.php
r2930934 r3022874 3 3 <div id="food-manager-food-dashboard"> 4 4 <div class="wpfm-dashboard-main-header"> 5 <div class="wpfm-dashboard-main-title wpfm-dashboard-main-filter"> 6 <h3 class="wpfm-theme-text"><?php esc_html_e('Food Dashboard', 'wp-food-manager'); ?></h3> 7 <div class="wpfm-d-inline-block wpfm-dashboard-i-block-btn"> 8 9 <?php do_action('food_manager_food_dashboard_button_action_start'); ?> 10 <?php if (isset($_GET['search_keywords']) || !empty($_GET['search_keywords'])) { ?> 11 <a href="<?php echo esc_url(get_permalink()); ?>" class="reset" title="<?php esc_attr_e('Reset Filter', 'wp-food-manager'); ?>" style="margin-right: 5px;"><?php esc_html_e('Reset', 'wp-food-manager'); ?></a> 12 <?php } 13 14 $add_food = get_option('food_manager_add_food_page_id'); 15 if (!empty($add_food)) : ?> 16 <a class="wpfm-dashboard-header-btn wpfm-dashboard-header-add-btn" title="<?php esc_attr_e('Add Food', 'wp-food-manager'); ?>" href="<?php echo esc_url(get_permalink($add_food)); ?>"><i class="wpfm-icon-plus"></i></a> 17 <?php endif; ?> 18 19 <?php do_action('food_manager_food_dashboard_button_action_end'); ?> 20 21 <a href="javascript:void(0)" title="<?php esc_attr_e('Filter', 'wp-food-manager'); ?>" class="wpfm-dashboard-food-filter wpfm-dashboard-header-btn"><i class="wpfm-icon-filter"></i></a> 22 </div> 23 </div> 24 <?php 25 $_GET = array_map('stripslashes_deep', $_GET); 26 $search_keywords = isset($_GET['search_keywords']) ? sanitize_text_field($_GET['search_keywords']) : ''; 27 $search_order_by = isset($_GET['search_order_by']) ? sanitize_text_field($_GET['search_order_by']) : ''; 28 $display_block = ''; 29 30 if (!empty($search_keywords) || !empty($search_order_by)) { 31 $display_block = 'wpfm-d-block'; 32 } 33 ?> 34 <form action="<?php echo esc_url(get_permalink(get_the_ID())); ?>" method="get" class="wpfm-form-wrapper wpfm-food-dashboard-filter-toggle wpfm-dashboard-main-filter-block <?php echo esc_attr($display_block); ?>"> 35 <div class="wpfm-foods-filter"> 36 <?php do_action('food_manager_food_dashboard_food_filter_start'); ?> 37 38 <div class="wpfm-foods-filter-block"> 39 <?php $search_keywords = isset($_GET['search_keywords']) ? $_GET['search_keywords'] : ''; ?> 40 <div class="wpfm-form-group"><input name="search_keywords" id="search_keywords" type="text" value="<?php echo esc_attr($search_keywords); ?>" placeholder="<?php esc_attr_e('Keywords', 'wp-food-manager'); ?>"></div> 41 </div> 42 <div class="wpfm-foods-filter-block"> 43 <div class="wpfm-form-group"> 44 <select name="search_order_by" id="search_order_by"> 45 <option value=""><?php esc_html_e('Order by', 'wp-food-manager'); ?></option> 46 <?php 47 foreach (get_food_order_by() as $order_by) : ?> 48 <?php if (isset($order_by['type']) && !empty($order_by['type'])) : ?> 49 <optgroup label="<?php echo esc_html($order_by['label']); ?>"> 50 <?php foreach ($order_by['type'] as $order_key => $order_value) : ?> 51 <option value="<?php echo esc_attr($order_key); ?>" <?php selected($order_key, $search_order_by); ?>><?php echo esc_html($order_value); ?></option> 52 <?php endforeach; ?> 53 </optgroup> 54 <?php endif; ?> 55 <?php endforeach; ?> 56 </select> 57 </div> 58 </div> 59 60 <?php do_action('food_manager_food_dashboard_food_filter_end'); ?> 61 <div class="wpfm-foods-filter-block wpfm-foods-filter-submit"> 62 <div class="wpfm-form-group"> 63 <button type="submit" class="wpfm-theme-button"><?php esc_html_e('Filter', 'wp-food-manager'); ?></button> 64 </div> 5 <!-- Vertical Menu Start--> 6 <div class="wpfm-main-vmenu-dashboard-wrapper wpfm-row"> 7 <div class="wpfm-main-vmenu-dashboard-nav-menu wpfm-col-md-3"> 8 <div class="wpfm-main-vmenu-dashboard-nav" id="wpfm-main-vmenu-dashboard-nav"> 9 <ul class="wpfm-main-vmenu-dashboard-ul"> 10 <?php 11 $current_action = isset($_GET['action']) ? sanitize_title( $_GET['action'] ): 'food_dashboard'; 12 $menus = [ 13 'food_dashboard' => [ 14 'title' => __('Foods', 'wp-food-manager'), 15 'icon' => 'wpfm-icon-meter', 16 'query_arg' => ['action' => 'food_dashboard'], 17 ], 18 ]; 19 $menus = apply_filters( 'wp_food_manager_dashboard_menu', $menus ); 20 $food_dashboard = get_option('food_manager_food_dashboard_page_id'); 21 22 foreach ($menus as $name => $menu) { 23 if (isset($menu['submenu']) && !empty($menu['submenu'])) { 24 $active_parent_menu = ''; 25 $child_menu_html = '<ul class="wpfm-food-main-vmenu-dashboard-submenu-ul">'; 26 foreach ($menu['submenu'] as $sub_name => $submenu) { 27 if (isset($submenu['query_arg']) && !empty($submenu['query_arg']) && is_array($submenu['query_arg'])) { 28 $action_url = add_query_arg( 29 $submenu['query_arg'], 30 get_permalink($food_dashboard) 31 ); 32 } else { 33 $action_url = add_query_arg( 34 array(), 35 get_permalink($food_dashboard) 36 ); 37 } 38 $active_menu = ''; 39 if ($current_action === $sub_name) { 40 $active_menu = 'wpfm-main-vmenu-dashboard-link-active'; 41 $active_parent_menu = 'wpfm-main-vmenu-dashboard-link-active'; 42 } 43 $child_menu_html .= '<li class="wpfm-main-vmenu-dashboard-submenu-li"><a class="wpfm-main-vmenu-dashboard-link ' . $active_menu . '" href="' . $action_url . '">' . $submenu['title'] . '</a></li>'; 44 } 45 $child_menu_html .= '</ul>'; 46 printf('<li class="wpfm-main-vmenu-dashboard-li wpfm-main-vmenu-dashboard-sub-menu"><a class="wpfm-main-vmenu-dashboard-link %s" href="javascript:void(0)"><i class="%s"></i>%s<i class="wpfm-icon-play3 wpfm-main-vmenu-caret wpfm-main-vmenu-caret-up"></i></a>', $active_parent_menu, $menu['icon'], $menu['title']); 47 echo wp_kses_post($child_menu_html); 48 printf('</li>'); 49 } else { 50 if (isset($menu['query_arg']) && !empty($menu['query_arg']) && is_array($menu['query_arg'])) { 51 $action_url = add_query_arg( 52 $menu['query_arg'], 53 get_permalink($food_dashboard) 54 ); 55 } else { 56 $action_url = add_query_arg( 57 array(), 58 get_permalink($food_dashboard) 59 ); 60 } 61 $active_menu = ''; 62 if ($current_action === $name) { 63 $active_menu = 'wpfm-main-vmenu-dashboard-link-active'; 64 } 65 printf('<li class="wpfm-main-vmenu-dashboard-li"><a class="wpfm-main-vmenu-dashboard-link %s" href="%s"> <i class="%s"></i>%s</a></li>', $active_menu, $action_url, $menu['icon'], $menu['title']); 66 } 67 68 } 69 ?> 70 </ul> 65 71 </div> 66 72 </div> 67 </form> 68 </div> 69 <div class="wpfm-responsive-table-block"> 70 <?php if (!$foods) : ?> 71 <div class="wpfm-alert wpfm-alert-danger wpfm-mb-0"><?php esc_html_e('You do not have any active listings.', 'wp-food-manager'); ?></div> 72 <?php else : ?> 73 <table class="wpfm-main wpfm-responsive-table-wrapper"> 74 <thead> 75 <tr> 76 <?php foreach ($food_dashboard_columns as $key => $column) : ?> 77 <th class="wpfm-heading-text <?php echo esc_attr($key); ?>"><?php echo esc_html($column); ?></th> 78 <?php endforeach; ?> 79 </tr> 80 </thead> 81 <tbody> 82 <?php foreach ($foods as $food) : ?> 83 <tr> 84 <?php foreach ($food_dashboard_columns as $key => $column) : ?> 85 <td data-title="<?php echo esc_attr($column); ?>" class="<?php echo esc_attr($key); ?>"> 86 <?php if ('food_title' === $key) : ?> 87 <?php if ($food->post_status == 'publish') : 88 $out = strlen($food->post_title) > 50 ? substr($food->post_title, 0, 50) . "..." : $food->post_title; ?> 89 <a href="<?php echo esc_url(get_permalink($food->ID)); ?>"><?php echo esc_html($out); ?></a> 90 <?php 91 $wpfm_veg_nonveg_tags = get_food_veg_nonveg_icon_tag($food); 92 $image_id = !empty($wpfm_veg_nonveg_tags) ? get_term_meta($wpfm_veg_nonveg_tags[0]->term_id, 'image_id', true) : ''; 93 $image_src = wp_get_attachment_image_src($image_id); 94 if (!empty($wpfm_veg_nonveg_tags)) { 95 foreach ($wpfm_veg_nonveg_tags as $wpfm_veg_nonveg_tag) { 96 $imagePath = ''; 97 if (empty($image_src)) { 98 if ($wpfm_veg_nonveg_tag->slug === 'vegetarian') { 99 $imagePath = WPFM_PLUGIN_URL . "/assets/images/wpfm-veg-organic.png"; 100 } 101 if ($wpfm_veg_nonveg_tag->slug === 'non-vegetarian') { 102 $imagePath = WPFM_PLUGIN_URL . "/assets/images/wpfm-non-veg-organic.png"; 103 } 104 if ($wpfm_veg_nonveg_tag->slug === 'vegan') { 105 $imagePath = WPFM_PLUGIN_URL . "/assets/images/wpfm-vegan-organic.png"; 106 } 107 } else { 108 $imagePath = $image_src[0]; 109 } 110 if (!empty($imagePath)) { 111 $data_icon_label = ucwords(str_replace("-", " ", $wpfm_veg_nonveg_tag->slug)); 112 echo '<div class="parent-organic-tag ' . esc_attr($wpfm_veg_nonveg_tag->slug) . '" data-icon-type="' . esc_attr($data_icon_label) . '"><img alt="' . esc_attr($wpfm_veg_nonveg_tag->slug) . '" src="' . esc_url($imagePath) . '" class="wpfm-organic-tag-icon ' . esc_attr($wpfm_veg_nonveg_tag->slug) . '"></div>'; 113 } 114 } 115 } 116 ?> 117 <?php else : ?> 118 <?php echo esc_html($food->post_title); ?> <small class="wpfm-food-status-pending-approval"><?php display_food_status($food); ?></small> 119 <?php endif; ?> 120 <?php elseif ('food_action' === $key) : ?> 121 <div class="wpfm-dboard-food-action"> 122 <?php 123 $actions = array(); 124 switch ($food->post_status) { 125 case 'publish': 126 $actions['edit'] = array( 127 'label' => __('Edit', 'wp-food-manager'), 128 'nonce' => false 129 ); 130 $actions['duplicate'] = array( 131 'label' => __('Duplicate', 'wp-food-manager'), 132 'nonce' => true 133 ); 134 break; 135 case 'expired': 136 if (food_manager_get_permalink('add_food')) { 137 $actions['relist'] = array( 138 'label' => __('Relist', 'wp-food-manager'), 139 'nonce' => true 140 ); 141 } 142 break; 143 case 'pending_payment': 144 case 'pending': 145 $actions['edit'] = array( 146 'label' => __('Edit', 'wp-food-manager'), 147 'nonce' => false 148 ); 149 break; 150 } 151 $actions['delete'] = array( 152 'label' => __('Delete', 'wp-food-manager'), 153 'nonce' => true 154 ); 155 $actions = apply_filters('food_manager_my_food_actions', $actions, $food); 156 foreach ($actions as $action => $value) { 157 $action_url = add_query_arg(array( 158 'action' => $action, 159 'food_id' => $food->ID 160 )); 161 if ($value['nonce']) { 162 $action_url = wp_nonce_url($action_url, 'food_manager_my_food_actions'); 163 } 164 echo '<div class="wpfm-dboard-food-act-btn"><a href="' . esc_url($action_url) . '" class="food-dashboard-action-' . esc_attr($action) . '" title="' . esc_attr($value['label']) . '" >' . esc_html($value['label']) . '</a></div>'; 165 } 166 ?> 73 74 <!-- food Dashboard Start --> 75 <div class="wpfm-main-vmenu-dashboard-content-wrap wpfm-col-md-9"> 76 <div class="wpfm-dashboard-main-content"> 77 78 <?php do_action('food_manager_food_dashboard_before'); ?> 79 80 <?php if (!in_array($current_action, ['food_dashboard', 'delete', 'mark_cancelled', 'mark_not_cancelled']) && !empty($current_action) ) : 81 if (has_action('food_manager_food_dashboard_contents_' . $current_action)) : 82 do_action('food_manager_food_dashboard_contents_' . $current_action); 83 endif;?> 84 <?php else : ?> 85 86 <div class="wpfm-dashboard-main-title wpfm-dashboard-main-filter"> 87 <h3 class="wpfm-theme-text"><?php esc_html_e('Food Dashboard', 'wp-food-manager'); ?></h3> 88 <div class="wpfm-d-inline-block wpfm-dashboard-i-block-btn"> 89 90 <?php do_action('food_manager_food_dashboard_button_action_start'); ?> 91 <?php if (isset($_GET['search_keywords']) || !empty($_GET['search_keywords'])) { ?> 92 <a href="<?php echo esc_url(get_permalink()); ?>" class="reset" title="<?php esc_attr_e('Reset Filter', 'wp-food-manager'); ?>" style="margin-right: 5px;"><?php esc_html_e('Reset', 'wp-food-manager'); ?></a> 93 <?php } 94 95 $add_food = get_option('food_manager_add_food_page_id'); 96 if (!empty($add_food)) : ?> 97 <a class="wpfm-dashboard-header-btn wpfm-dashboard-header-add-btn" title="<?php esc_attr_e('Add Food', 'wp-food-manager'); ?>" href="<?php echo esc_url(get_permalink($add_food)); ?>"><i class="wpfm-icon-plus"></i></a> 98 <?php endif; ?> 99 100 <?php do_action('food_manager_food_dashboard_button_action_end'); ?> 101 102 <a href="javascript:void(0)" title="<?php esc_attr_e('Filter', 'wp-food-manager'); ?>" class="wpfm-dashboard-food-filter wpfm-dashboard-header-btn"><i class="wpfm-icon-filter"></i></a> 103 </div> 104 </div> 105 <?php 106 $_GET = array_map('stripslashes_deep', $_GET); 107 $search_keywords = isset($_GET['search_keywords']) ? sanitize_text_field($_GET['search_keywords']) : ''; 108 $search_order_by = isset($_GET['search_order_by']) ? sanitize_text_field($_GET['search_order_by']) : ''; 109 $display_block = ''; 110 111 if (!empty($search_keywords) || !empty($search_order_by)) { 112 $display_block = 'wpfm-d-block'; 113 } 114 ?> 115 <form action="<?php echo esc_url(get_permalink(get_the_ID())); ?>" method="get" class="wpfm-form-wrapper wpfm-food-dashboard-filter-toggle wpfm-dashboard-main-filter-block <?php echo esc_attr($display_block); ?>"> 116 <div class="wpfm-foods-filter"> 117 <?php do_action('food_manager_food_dashboard_food_filter_start'); ?> 118 119 <div class="wpfm-foods-filter-block"> 120 <?php $search_keywords = isset($_GET['search_keywords']) ? $_GET['search_keywords'] : ''; ?> 121 <div class="wpfm-form-group"><input name="search_keywords" id="search_keywords" type="text" value="<?php echo esc_attr($search_keywords); ?>" placeholder="<?php esc_attr_e('Keywords', 'wp-food-manager'); ?>"></div> 122 </div> 123 <div class="wpfm-foods-filter-block"> 124 <div class="wpfm-form-group"> 125 <select name="search_order_by" id="search_order_by"> 126 <option value=""><?php esc_html_e('Order by', 'wp-food-manager'); ?></option> 127 <?php 128 foreach (get_food_order_by() as $order_by) : ?> 129 <?php if (isset($order_by['type']) && !empty($order_by['type'])) : ?> 130 <optgroup label="<?php echo esc_html($order_by['label']); ?>"> 131 <?php foreach ($order_by['type'] as $order_key => $order_value) : ?> 132 <option value="<?php echo esc_attr($order_key); ?>" <?php selected($order_key, $search_order_by); ?>><?php echo esc_html($order_value); ?></option> 133 <?php endforeach; ?> 134 </optgroup> 135 <?php endif; ?> 136 <?php endforeach; ?> 137 </select> 167 138 </div> 168 <?php 169 elseif ('food_categories' === $key) : 170 display_food_category($food); 171 elseif ('view_count' === $key) : 172 echo get_food_views_count($food); 173 ?> 174 <?php else : ?> 175 <?php do_action('food_manager_food_dashboard_column_' . $key, $food); ?> 176 <?php endif; ?> 177 </td> 178 <?php endforeach; ?> 179 </tr> 180 <?php endforeach; ?> 181 </tbody> 182 </table> 183 <?php endif; ?> 184 </div> 185 <?php do_action('food_manager_food_dashboard_after_table'); ?> 186 </div> 187 188 <?php do_action('food_manager_food_dashboard_after'); ?> 139 </div> 140 141 <?php do_action('food_manager_food_dashboard_food_filter_end'); ?> 142 <div class="wpfm-foods-filter-block wpfm-foods-filter-submit"> 143 <div class="wpfm-form-group"> 144 <button type="submit" class="wpfm-theme-button"><?php esc_html_e('Filter', 'wp-food-manager'); ?></button> 145 </div> 146 </div> 147 </div> 148 </form> 149 </div> 150 <div class="wpfm-responsive-table-block"> 151 <?php if (!$foods) : ?> 152 <div class="wpfm-alert wpfm-alert-danger wpfm-mb-0"><?php esc_html_e('You do not have any active listings.', 'wp-food-manager'); ?></div> 153 <?php else : ?> 154 <table class="wpfm-main wpfm-responsive-table-wrapper"> 155 <thead> 156 <tr> 157 <?php foreach ($food_dashboard_columns as $key => $column) : ?> 158 <th class="wpfm-heading-text <?php echo esc_attr($key); ?>"><?php echo esc_html($column); ?></th> 159 <?php endforeach; ?> 160 </tr> 161 </thead> 162 <tbody> 163 <?php foreach ($foods as $food) : ?> 164 <tr> 165 <?php foreach ($food_dashboard_columns as $key => $column) : ?> 166 <td data-title="<?php echo esc_attr($column); ?>" class="<?php echo esc_attr($key); ?>"> 167 <?php if ('food_title' === $key) : ?> 168 <?php if ($food->post_status == 'publish') : 169 $out = strlen($food->post_title) > 50 ? substr($food->post_title, 0, 50) . "..." : $food->post_title; ?> 170 <a href="<?php echo esc_url(get_permalink($food->ID)); ?>"><?php echo esc_html($out); ?></a> 171 <?php 172 $wpfm_veg_nonveg_tags = get_food_veg_nonveg_icon_tag($food); 173 $image_id = !empty($wpfm_veg_nonveg_tags) ? get_term_meta($wpfm_veg_nonveg_tags[0]->term_id, 'image_id', true) : ''; 174 $image_src = wp_get_attachment_image_src($image_id); 175 if (!empty($wpfm_veg_nonveg_tags)) { 176 foreach ($wpfm_veg_nonveg_tags as $wpfm_veg_nonveg_tag) { 177 $imagePath = ''; 178 if (empty($image_src)) { 179 if ($wpfm_veg_nonveg_tag->slug === 'vegetarian') { 180 $imagePath = WPFM_PLUGIN_URL . "/assets/images/wpfm-veg-organic.png"; 181 } 182 if ($wpfm_veg_nonveg_tag->slug === 'non-vegetarian') { 183 $imagePath = WPFM_PLUGIN_URL . "/assets/images/wpfm-non-veg-organic.png"; 184 } 185 if ($wpfm_veg_nonveg_tag->slug === 'vegan') { 186 $imagePath = WPFM_PLUGIN_URL . "/assets/images/wpfm-vegan-organic.png"; 187 } 188 } else { 189 $imagePath = $image_src[0]; 190 } 191 if (!empty($imagePath)) { 192 $data_icon_label = ucwords(str_replace("-", " ", $wpfm_veg_nonveg_tag->slug)); 193 echo '<div class="parent-organic-tag ' . esc_attr($wpfm_veg_nonveg_tag->slug) . '" data-icon-type="' . esc_attr($data_icon_label) . '"><img alt="' . esc_attr($wpfm_veg_nonveg_tag->slug) . '" src="' . esc_url($imagePath) . '" class="wpfm-organic-tag-icon ' . esc_attr($wpfm_veg_nonveg_tag->slug) . '"></div>'; 194 } 195 } 196 } 197 ?> 198 <?php else : ?> 199 <?php echo esc_html($food->post_title); ?> <small class="wpfm-food-status-pending-approval"><?php display_food_status($food); ?></small> 200 <?php endif; ?> 201 <?php elseif ('food_action' === $key) : ?> 202 <div class="wpfm-dboard-food-action"> 203 <?php 204 $actions = array(); 205 switch ($food->post_status) { 206 case 'publish': 207 $actions['edit'] = array( 208 'label' => __('Edit', 'wp-food-manager'), 209 'nonce' => false 210 ); 211 $actions['duplicate'] = array( 212 'label' => __('Duplicate', 'wp-food-manager'), 213 'nonce' => true 214 ); 215 break; 216 case 'expired': 217 if (food_manager_get_permalink('add_food')) { 218 $actions['relist'] = array( 219 'label' => __('Relist', 'wp-food-manager'), 220 'nonce' => true 221 ); 222 } 223 break; 224 case 'pending_payment': 225 case 'pending': 226 $actions['edit'] = array( 227 'label' => __('Edit', 'wp-food-manager'), 228 'nonce' => false 229 ); 230 break; 231 } 232 $actions['delete'] = array( 233 'label' => __('Delete', 'wp-food-manager'), 234 'nonce' => true 235 ); 236 $actions = apply_filters('food_manager_my_food_actions', $actions, $food); 237 foreach ($actions as $action => $value) { 238 $action_url = add_query_arg(array( 239 'action' => $action, 240 'food_id' => $food->ID 241 )); 242 if ($value['nonce']) { 243 $action_url = wp_nonce_url($action_url, 'food_manager_my_food_actions'); 244 } 245 echo '<div class="wpfm-dboard-food-act-btn"><a href="' . esc_url($action_url) . '" class="food-dashboard-action-' . esc_attr($action) . '" title="' . esc_attr($value['label']) . '" >' . esc_html($value['label']) . '</a></div>'; 246 } 247 ?> 248 </div> 249 <?php 250 elseif ('food_categories' === $key) : 251 display_food_category($food); 252 elseif ('view_count' === $key) : 253 echo get_food_views_count($food); 254 ?> 255 <?php else : ?> 256 <?php do_action('food_manager_food_dashboard_column_' . $key, $food); ?> 257 <?php endif; ?> 258 </td> 259 <?php endforeach; ?> 260 </tr> 261 <?php endforeach; ?> 262 263 </tbody> 264 </table> 265 <?php endif; get_food_manager_template('pagination.php', array('max_num_pages' => $max_num_pages));?> 266 </div> 267 <?php do_action('food_manager_food_dashboard_after_table'); ?> 268 </div> 269 </div> 270 <!-- food Dashboard End --> 271 </div> 272 273 274 </div> 275 <?php endif; 276 do_action('food_manager_food_dashboard_after'); ?> 277 278 279 280 -
wp-food-manager/trunk/templates/food-filters.php
r2930934 r3022874 20 20 <!-- Search by keywords section end--> 21 21 <?php 22 $args = array(23 'post_type'=> 'food_manager_menu',24 'post_status'=> 'publish',25 'posts_per_page' => -1,26 );27 22 $args = array( 23 'post_type' => 'food_manager_menu', 24 'post_status' => 'publish', 25 'posts_per_page' => -1, 26 ); 27 $food_menu_posts = get_posts($args); 28 28 $the_query = new WP_Query($args); 29 if ($the_query->have_posts()) { ?> 29 if ($the_query->have_posts()) { 30 ?> 30 31 <!-- Search by food menu section start --> 31 32 <div class="wpfm-col"> … … 35 36 <select name="search_food_menu[]" id="search_food_menu" class="food-manager-post_type-dropdown " <?php echo ($show_food_menu_multiselect) ? 'multiple' : ''; ?> data-placeholder="<?php echo esc_attr__('Choose a Food Menu…'); ?>" data-no_results_text="<?php echo esc_attr__('No results match'); ?>" data-multiple_text="<?php echo esc_attr__('Choose a Food Menu…'); ?>"> 36 37 <?php 37 if (!$show_food_menu_multiselect) echo '<option value="">' . esc_html__('Choose a Food Menu') . '</option>'; 38 if (!$show_food_menu_multiselect) { 39 echo '<option value="">' . esc_html__('Choose a Food Menu') . '</option>'; 40 } 41 38 42 while ($the_query->have_posts()) { 39 43 $the_query->the_post(); 40 echo '<option value="' . esc_attr(get_the_ID()) . '">' . esc_html(get_the_title()) . '</option>'; 41 } ?> 44 ?> 45 <option value="<?php echo esc_attr(get_the_ID()); ?>"><?php echo esc_html(get_the_title()); ?></option> 46 <?php 47 } 48 ?> 42 49 </select> 43 50 </div> … … 45 52 </div> 46 53 <!-- Search by food menu section end--> 47 <?php } 54 <?php 55 } 48 56 wp_reset_postdata(); 49 57 ?> 58 59 50 60 </div><!-- /row --> 51 61 <div class="wpfm-row"> -
wp-food-manager/trunk/templates/food-listings-end.php
r2902320 r3022874 1 1 </div> 2 <!-- add to cart notification --> 3 <?php do_action('wpfm_food_manager_food_listings_after'); ?> -
wp-food-manager/trunk/templates/food-listings-start.php
r2930934 r3022874 6 6 <div class="wpfm-col wpfm-col-12 wpfm-col-sm-6 wpfm-col-md-6 wpfm-col-lg-8"> 7 7 <div class="wpfm-food-listing-header-title"> 8 <h2 class="wpfm-heading-text"><?php esc_html_e( 'Foods', 'wp-food-manager'); ?></h2>8 <h2 class="wpfm-heading-text"><?php esc_html_e($title); ?></h2> 9 9 </div> 10 10 </div> -
wp-food-manager/trunk/templates/food-pagination.php
r2930934 r3022874 2 2 3 3 /** 4 * Pagination - Show numbered pagination for the [foods] shortcode 4 * Pagination - Show numbered pagination for the [foods] shortcode. 5 5 */ 6 if (!defined('ABSPATH')) exit; // Exit if accessed directly 6 if (!defined('ABSPATH')) exit; // Exit if accessed directly. 7 7 8 8 if ($max_num_pages <= 1) { … … 10 10 } 11 11 12 // Calculate pages to output 12 // Calculate pages to output. 13 13 $end_size = 3; 14 14 $mid_size = 3; -
wp-food-manager/trunk/templates/food-submit.php
r2930934 r3022874 2 2 3 3 /** 4 * Food Submission Form 4 * Food Submission Form. 5 5 */ 6 6 if (!defined('ABSPATH')) exit; … … 10 10 $food_dashboard_page_id = get_option('food_manager_food_dashboard_page_id'); 11 11 $extra_fields_options = get_post_meta($food_id, '_food_toppings', true) ? get_post_meta($food_id, '_food_toppings', true) : ''; 12 13 12 if (!empty($extra_fields_options)) { 14 13 $option_value_counts1 = array(); 15 16 14 for ($i = 1; $i <= count($extra_fields_options); $i++) { 17 15 foreach ($extra_fields_options as $key => $value) { … … 21 19 } 22 20 } 23 24 21 $option_value_counts = array(); 25 22 foreach ($option_value_counts1 as $option_value_count) { 26 23 $option_value_counts[] = array_unique($option_value_count); 27 24 } 28 29 array_unshift($option_value_counts, ""); 25 array_unshift($option_value_counts1, ""); 30 26 unset($option_value_counts[0]); 31 27 $option_value_counts2 = array(); … … 33 29 for ($i = 1; $i <= count($extra_fields_options); $i++) { 34 30 foreach ($extra_fields_options as $key => $value) { 35 for ($j = 1; $j <= count($value['_topping_options']); $j++) {31 // for ($j = 1; $j <= count($value['_topping_options']); $j++) { 36 32 $option_value_counts2[$key] = $value; 37 }33 // } 38 34 } 39 35 } 40 41 36 $option_value_counts3 = array(); 42 37 foreach ($option_value_counts2 as $option_value2_count) { … … 86 81 <div class="wpfm-options-wrapper wpfm-metaboxes"> 87 82 <?php if (!empty($extra_fields_options)) { 83 // print_r($option_value_counts3); 88 84 foreach ($option_value_counts3 as $key => $extra_fields_option) { 89 85 $toppings = get_post_meta($food_id, '_food_toppings', true); … … 117 113 ?> 118 114 <fieldset class="wpfm-form-group fieldset<?php echo $key2; ?> <?php echo $fieldClassLabel; ?>" data-field-name="<?php echo $key2; ?>"> 119 <label for="<?php echo $key2; ?>"class="wpfm-form-label-text"><?php echo $field['label'] . apply_filters('add_food_required_label', $field['required'] ? '<span class="require-field">*</span>' : ' <small>' . __('(optional)', 'wp-food-manager') . '</small>', $field); ?></label>115 <label class="wpfm-form-label-text"><?php echo $field['label'] . apply_filters('add_food_required_label', $field['required'] ? '<span class="require-field">*</span>' : ' <small>' . __('(optional)', 'wp-food-manager') . '</small>', $field); ?></label> 120 116 <div class="field <?php echo $field['required'] ? 'required-field' : ''; ?>"> 121 117 <?php get_food_manager_template('form-fields/' . $field['type'] . '-field.php', array('key' => $key2, 'field' => $field)); ?> … … 125 121 if ($key2 == 'topping_options') { ?> 126 122 <fieldset class="wpfm-form-group fieldset_topping_options_<?php echo $key; ?> "> 127 <label for="_topping_options_<?php echo $key; ?>">Options <small>(optional)</small></label>123 <label >Options <small>(optional)</small></label> 128 124 <div class="field "> 129 125 <table class="widefat"> … … 172 168 <tfoot> 173 169 <tr> 174 <td colspan="7"> <a class="button wpfm-add-row" data-row="<tr class='option-tr-%%repeated-option-index3%%'> 170 <td colspan="7"> <a class="button wpfm-add-row" data-row="<?php 171 ob_start(); 172 ?> 173 <tr class='option-tr-%%repeated-option-index3%%'> 175 174 <td><span class='wpfm-option-sort'>☰</span></td> 176 175 <td>%%repeated-option-index3%%</td> 177 176 <td><input type='text' name='%%repeated-option-index2%%_option_name_%%repeated-option-index3%%' value='' class='opt_name' pattern='.*\S+.*' required></td> 178 <?php do_action('wpfm_repeated_option_name_after', array()); ?>177 <?php do_action('wpfm_repeated_option_name_after', $args); ?> 179 178 <td><input type='number' name='%%repeated-option-index2%%_option_price_%%repeated-option-index3%%' value='' class='opt_price' min='0' required></td> 180 <?php do_action('wpfm_repeated_option_price_after', array()); ?>179 <?php do_action('wpfm_repeated_option_price_after', $args); ?> 181 180 <td><a href='javascript: void(0);' data-id='%%repeated-option-index3%%' class='option-delete-btn dashicons dashicons-dismiss'></a></td> 182 181 <input type='hidden' class='option-value-class' name='option_value_count[%%repeated-option-index2%%][]' value='%%repeated-option-index3%%'> 183 </tr>">Add Row</a> 182 </tr> 183 <?php echo esc_attr(ob_get_clean()); 184 ?> 185 ">Add Row</a> 184 186 </td> 185 187 </tr> … … 197 199 ?> 198 200 <div class="wpfm-actions"> 199 <button type="button" class="wpfm-add-button button button-primary" id="wpfm-add-new-option" data-row='<div class="wpfm-options-wrap wpfm-metabox postbox wpfm-options-box-__repeated-option-index__"> 201 <button type="button" class="wpfm-add-button button button-primary" id="wpfm-add-new-option" data-row='<?php 202 ob_start(); 203 ?> 204 <div class="wpfm-options-wrap wpfm-metabox postbox wpfm-options-box-__repeated-option-index__"> 200 205 <input type="hidden" name="repeated_options[]" value="__repeated-option-index__" class="repeated-options"> 201 206 <h3 class=""> … … 239 244 </div> 240 245 </div> 241 </div>'>+ Add Topping 246 </div> 247 <?php echo esc_attr(ob_get_clean()); 248 ?> 249 '>+ Add Topping 242 250 </button> 243 251 </div> -
wp-food-manager/trunk/templates/form-fields/date-field.php
r2930934 r3022874 15 15 } 16 16 ?> 17 <div class="controls" style="position: relative"> 17 18 18 <input type="text" class="input-text" name="<?php echo esc_attr(isset($field['name']) ? $field['name'] : $key); ?>" id="<?php echo isset($field['id']) ? esc_attr($field['id']) : esc_attr($key); ?>" attribute="<?php echo esc_attr(isset($field['attribute']) ? $field['attribute'] : ''); ?>" placeholder="<?php echo esc_attr($field['placeholder']); ?>" value="<?php echo isset($field_val_num) ? esc_attr($field_val_num) : ''; ?>" maxlength="<?php echo !empty($field['maxlength']) ? esc_attr($field['maxlength']) : ''; ?>" <?php if (!empty($field['required'])) echo esc_attr('required'); ?> data-picker="datepicker" /> 19 19 <?php if (!empty($field['description'])) : ?><small class="description"><?php echo esc_html(sanitize_textarea_field($field['description'])); ?></small><?php endif; ?> 20 </div> -
wp-food-manager/trunk/templates/form-fields/select-field.php
r2930934 r3022874 8 8 $field_val_num = !empty($field['value']) ? $field['value'] : ''; 9 9 } 10 ?> 11 <select name="<?php echo esc_attr(isset($field['name']) ? $field['name'] : $key); ?>" id="<?php echo esc_attr($key); ?>" <?php if (!empty($field['required'])) echo 'required'; ?> attribute="<?php echo esc_attr(isset($field['attribute']) ? $field['attribute'] : ''); ?>"> 12 <?php foreach ($field['options'] as $option_key => $option_value) : 13 $field_val = (!empty($field_val_num) && $field_val_num === $option_key) ? 'selected' : ''; 14 ?> 15 <option value="<?php echo esc_attr($option_key); ?>" <?php echo esc_attr($field_val); ?>><?php echo esc_html($option_value); ?></option> 16 <?php endforeach; ?> 17 </select> 18 <?php if (!empty($field['description'])) : ?><small class="description"><?php echo esc_html($field['description']); ?></small><?php endif; ?> 10 11 if( isset( $field['post_type'] ) && !empty( $field['post_type'] ) ){ 12 $food_posts_listing = get_posts (array ( 13 'numberposts' => -1, 14 'post_type' => $field['post_type'], 15 'orderby' => 'title', 16 'order' => 'ASC' 17 )); ?> 18 <select name="<?php echo esc_attr(isset($field['name']) ? $field['name'] : $key); ?>" id="<?php echo esc_attr($key); ?>" <?php if (!empty($field['required'])) echo 'required'; ?> attribute="<?php echo esc_attr(isset($field['attribute']) ? $field['attribute'] : ''); ?>"> 19 <?php 20 if( !empty( $food_posts_listing ) ) { 21 foreach ($food_posts_listing as $option_key => $option_value) : 22 $field_val = ( !empty($field['value']) && $field['value'] === $option_value->post_title) ? 'selected' : ''; ?> 23 <option value="<?php echo esc_attr($option_value->post_title); ?>" <?php echo esc_attr($field_val); ?>><?php echo esc_html($option_value->post_title); ?></option> 24 <?php endforeach; 25 } else { 26 echo '<option value="">No Food Menu Added</option>'; 27 } ?> 28 </select> 29 <?php 30 } else { ?> 31 <select name="<?php echo esc_attr(isset($field['name']) ? $field['name'] : $key); ?>" id="<?php echo esc_attr($key); ?>" <?php if (!empty($field['required'])) echo 'required'; ?> attribute="<?php echo esc_attr(isset($field['attribute']) ? $field['attribute'] : ''); ?>"> 32 <?php foreach ($field['options'] as $option_key => $option_value) : 33 $field_val = (!empty($field_val_num) && $field_val_num === $option_key) ? 'selected' : ''; ?> 34 <option value="<?php echo esc_attr($option_key); ?>" <?php echo esc_attr($field_val); ?>><?php echo esc_html($option_value); ?></option> 35 <?php endforeach; ?> 36 </select> 37 <?php } 38 if( !empty( $field['description'])) : ?><small class="description"><?php echo esc_html($field['description']); ?></small><?php endif; ?> -
wp-food-manager/trunk/templates/form-fields/term-select-multi-appearance-field.php
r2930934 r3022874 11 11 $selected = ''; 12 12 } 13 13 14 $unit = get_terms('food_manager_unit', array( 14 15 'orderby' => 'count', 15 16 'hide_empty' => 0 16 17 )); 18 17 19 wp_enqueue_script('wp-food-manager-term-multiselect'); 18 20 wp_enqueue_script('wp-food-manager-term-select-multi-appearance'); … … 24 26 ) 25 27 ); 28 29 /** This is used for multiselect selected value array */ 30 $select = array(); 31 32 // Check if $field['value'] is an array before attempting to iterate over it 33 if (is_array($field['value'])) { 34 foreach ($field['value'] as $key => $value) { 35 if (is_array($value)) { 36 array_push($select, $key); 37 } 38 } 39 } 40 41 if (!empty($select)) { 42 $selected = $select; 43 } 44 26 45 /* Check if localize script is running or not to run globally localize script */ 27 46 $data = $wp_scripts->get_data('wp-food-manager-term-select-multi-appearance', 'data'); … … 35 54 ); 36 55 } 56 37 57 $args = array( 38 58 'taxonomy' => esc_attr($field['taxonomy']), … … 44 64 'name_attr' => false, 45 65 ); 66 46 67 // For Edit screen of food 47 68 $preview_htm = ''; 48 69 $style = 'display:none;'; 70 49 71 if (isset($_GET['food_id']) && !empty($_GET['food_id']) || $food_id) { 50 72 if (isset($_GET['food_id']) && !empty($_GET['food_id'])) { 51 73 $food_id = $_GET['food_id']; 52 } else if ($food_id) {74 } elseif ($food_id) { 53 75 $food_id = $food_id; 54 76 } else { 55 77 $food_id = ''; 56 78 } 79 57 80 $meta_key = ($field['taxonomy'] == 'food_manager_nutrition') ? 'food_nutritions' : ($field['taxonomy'] == 'food_manager_ingredient' ? 'food_ingredients' : ''); 58 81 $term_name = ($meta_key == 'food_nutritions') ? 'nutrition_term_name' : ($meta_key == 'food_ingredients' ? 'ingredient_term_name' : ''); 82 59 83 if ($meta_key) { 60 84 $tax_values = get_post_meta($food_id, '_' . $meta_key, true); … … 63 87 'hide_empty' => false, 64 88 )); 89 65 90 if ($tax_values) { 66 91 foreach ($tax_values as $tax_value) { 67 92 $unit_option = '<option value="">Unit</option>'; 93 68 94 if ($unit_terms) { 69 95 foreach ($unit_terms as $unit) { … … 71 97 } 72 98 } 99 73 100 $preview_htm .= '<li class="term-item" data-id="' . $tax_value['id'] . '">'; 74 101 $preview_htm .= '<label>' . esc_html($tax_value[$term_name]) . '</label>'; 75 102 $preview_htm .= '<div class="term-item-flex">'; 76 $preview_htm .= '<input type="number" min="0" step=" 0.1" value="' . esc_attr($tax_value['value']) . '" name="' . esc_attr($meta_key) . '[' . esc_attr($tax_value['id']) . '][value]">';103 $preview_htm .= '<input type="number" min="0" step="any" value="' . esc_attr($tax_value['value']) . '" name="' . esc_attr($meta_key) . '[' . esc_attr($tax_value['id']) . '][value]">'; 77 104 $preview_htm .= '<select name="' . esc_attr($meta_key) . '[' . esc_attr($tax_value['id']) . '][unit_id]">' . $unit_option . '</select>'; 78 105 $preview_htm .= '</div>'; … … 83 110 } 84 111 } 85 if (isset($field['placeholder']) && !empty($field['placeholder'])) $args['placeholder'] = esc_attr($field['placeholder']); 112 113 if (isset($field['placeholder']) && !empty($field['placeholder'])) { 114 $args['placeholder'] = esc_attr($field['placeholder']); 115 } 116 86 117 echo '<div class="multiselect_appearance">'; 87 118 food_manager_dropdown_selection(apply_filters('food_manager_term_select_multi_appearance_field_args', $args)); 88 119 echo '</div>'; 89 if (!empty($field['description'])) : ?><small class="description"><?php echo esc_html($field['description']); ?></small><?php endif; ?> 120 121 if (!empty($field['description'])) : ?> 122 <small class="description"><?php echo esc_html($field['description']); ?></small> 123 <?php endif; ?> 124 90 125 <div class="<?php echo isset($field['name']) ? esc_attr($field['name']) : $key; ?>-preview selection-preview" style="<?php echo esc_attr($style); ?>" data-name="<?php echo ($field['taxonomy'] == 'food_manager_ingredient') ? 'food_ingredients' : 'food_nutritions'; ?>"> 91 126 <legend>Preview:</legend> -
wp-food-manager/trunk/templates/pagination.php
r2930934 r3022874 1 1 <?php 2 3 2 /** 4 3 * Pagination - Show numbered pagination for catalog pages. 5 4 */ 6 5 7 if (!defined('ABSPATH')) exit; // Exit if accessed directly6 if(!defined('ABSPATH')) exit; // Exit if accessed directly 8 7 9 if ($max_num_pages <= 1) {8 if($max_num_pages <= 1) { 10 9 return; 11 } 12 ?> 10 } ?> 11 13 12 <nav class="food-manager-pagination"> 14 <?php echo paginate_links(apply_filters('food_manager_pagination_args', array( 15 'base' => esc_url_raw(str_replace(999999999, '%#%', get_pagenum_link(999999999, false))), 16 'format' => '', 17 'current' => max(1, absint(get_query_var('paged'))), 18 'total' => absint($max_num_pages), 19 'prev_text' => esc_html('←'), 20 'next_text' => esc_html('→'), 21 'type' => 'list', 22 'end_size' => 3, 23 'mid_size' => 3 24 ))); ?> 13 <?php 14 $current_page = is_front_page() ? max(1, get_query_var('page')) : max(1, get_query_var('paged')); 15 echo paginate_links(apply_filters('food_manager_pagination_args', array( 16 'base' => esc_url_raw(str_replace(999999999, '%#%', get_pagenum_link(999999999, false))), 17 'format' => '', 18 'current' => $current_page , 19 'total' => $max_num_pages, 20 'prev_text' => '←', 21 'next_text' => '→', 22 'type' => 'list', 23 'end_size' => 3, 24 'mid_size' => 3 25 ))); 26 ?> 25 27 </nav> -
wp-food-manager/trunk/templates/rss-food-feed.php
r2914276 r3022874 5 5 do_action('food_fee_item_start'); 6 6 if (isset($food_type->name)) { 7 7 8 echo "<food_manager:food_type><![CDATA[" . esc_html($food_type->name) . "]]></food_manager:food_type>\n"; 8 9 } 9 10 if (isset($food_category->name)) { 11 10 12 echo "<food_manager:food_category><![CDATA[" . esc_html($food_category->name) . "]]></food_manager:food_category>\n"; 11 13 } -
wp-food-manager/trunk/uninstall.php
r2930934 r3022874 10 10 } 11 11 12 // Cleanup all data.12 // This Included file cleanup all data. 13 13 require 'includes/wpfm-data-cleaner.php'; 14 14 … … 21 21 } 22 22 } else { 23 24 23 global $wpdb; 25 24 $blog_ids = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs"); … … 75 74 ); 76 75 77 // Delete the options76 //Delete the options. 78 77 foreach ($options as $option) { 79 78 delete_option(esc_attr($option)); -
wp-food-manager/trunk/wp-food-manager-functions.php
r2930934 r3022874 146 146 } 147 147 148 // Polylang LANG arg148 //Sets the Polylang LANG arg to the current language. 149 149 if (function_exists('pll_current_language')) { 150 150 $query_args['lang'] = pll_current_language(); … … 154 154 $query_args['lang'] = apply_filters('wpfm_lang', null); 155 155 156 // Filter args 156 // Filter args. 157 157 $query_args = apply_filters('get_food_listings_query_args', $query_args, $args); 158 158 do_action('before_get_food_listings', $query_args, $args); … … 227 227 if (!function_exists('wpfm_notify_new_user')) : 228 228 /** 229 * Send notification to the new users.229 * This wpfm_notify_new_user() function used to send notification to the new users. 230 230 * 231 231 * @param int $user_id … … 249 249 if (!function_exists('wpfm_create_account')) : 250 250 /** 251 * Create the account.251 * This wpfm_create_account() function is used to create the account. 252 252 * 253 253 * @param array $args containing username, email, role … … 297 297 } 298 298 299 // Ensure username is unique 299 // Ensure username is unique. 300 300 $append = 1; 301 301 $o_username = $username; … … 305 305 } 306 306 307 // Final error checking 307 // Final error checking. 308 308 $reg_errors = new WP_Error(); 309 309 $reg_errors = apply_filters('food_manager_registration_errors', $reg_errors, $username, $email); … … 313 313 } 314 314 315 // Create account 315 // Create account. 316 316 $new_user = array( 317 317 'user_login' => $username, … … 418 418 /** 419 419 * Checks if the user can upload a file via the Ajax endpoint. 420 * 420 * @param bool $can_upload True if they can upload files from Ajax endpoint. 421 421 * @return bool 422 422 * @since 1.0.0 … … 425 425 $can_upload = is_user_logged_in() && wpfm_user_can_post_food(); 426 426 427 /** 428 * Override ability of a user to upload a file via Ajax. 429 * 430 * @param bool $can_upload True if they can upload files from Ajax endpoint. 431 * @since 1.0.0 432 */ 427 // Override ability of a user to upload a file via Ajax. 428 433 429 return apply_filters('wpfm_user_can_upload_file_via_ajax', $can_upload); 434 430 } … … 471 467 extract($r); 472 468 473 // Store in a transient to help sites with many cats 469 // Store in a transient to help sites with many cats. 474 470 if (empty($categories)) { 475 471 $categories = get_terms($taxonomy, array( … … 511 507 $output = '<select ' . $data_taxonomy . ' ' . $name_attr . ' id="' . esc_attr($id) . '" class="' . esc_attr($class) . '" ' . ($multiple ? 'multiple="multiple"' : "") . ' data-placeholder="' . esc_attr($placeholder) . '" data-no_results_text="' . esc_attr($no_results_text) . '" data-multiple_text="' . esc_attr($multiple_text) . '">\n'; 512 508 513 if (is_admin()) {514 if (empty($item_cat_ids) && isset($item_cat_ids)) {515 $output .= '<option value="" disabled selected>' . $placeholder . '</option>';516 }517 }518 509 519 510 if ($show_option_all) { … … 541 532 542 533 /** 543 * Checks if the provided content or the current single page or post has a WPFM shortcode.534 * This has_wpfm_shortcode() function is used to checks if the provided content or the current single page or post has a WPFM shortcode. 544 535 * 545 536 * @param string|null $content Content to check. If not provided, it uses the current post content. 546 537 * @param string|array|null $tag Check specifically for one or more shortcodes. If not provided, checks for any WPJM shortcode. 538 * @param string[] $has_wpfm_shortcode. 539 * @param bool $has_wpfm_shortcode 547 540 * @return bool 548 541 * @since 1.0.0 … … 559 552 $has_wpfm_shortcode = array('add_food', 'food_dashboard', 'foods', 'food_categories', 'food_type', 'food', 'food_summary', 'food_apply'); 560 553 561 /** 562 * Filters a list of all shortcodes associated with WPFM. 563 * 564 * @param string[] $has_wpfm_shortcode 565 * @since 1.0.0 566 */ 554 // Filters a list of all shortcodes associated with WPFM. 555 567 556 $has_wpfm_shortcode = array_unique(apply_filters('food_manager_shortcodes', $has_wpfm_shortcode)); 568 557 if (null !== $tag) { … … 581 570 } 582 571 583 /** 584 * Filter the result of has_wpfm_shortcode() 585 * 586 * @param bool $has_wpfm_shortcode 587 * @since 1.0.0 588 */ 572 // Filter the result of has_wpfm_shortcode() function. 589 573 return apply_filters('has_wpfm_shortcode', $has_wpfm_shortcode); 590 574 } 591 575 592 576 /** 593 * Checks if the current page is a food listing.577 * This is_wpfm_food_listing() functio is used to Checks if the current page is a food listing. 594 578 * 595 579 * @return bool … … 602 586 if (!function_exists('wpfm_get_filtered_links')) : 603 587 /** 604 * Shows links after filtering foods588 * This wpfm_get_filtered_links() function Shows links after filtering foods. 605 589 * 606 590 * @param array $args (default: array()) … … 613 597 614 598 // Convert to slugs 615 if ( $args['search_categories']) {599 if (isset($args['search_categories'])) { 616 600 foreach ($args['search_categories'] as $category) { 617 601 if (is_numeric($category)) { … … 626 610 } 627 611 628 // Convert to slugs 629 if ( $args['search_food_types']) {612 // Convert to slugs. 613 if (isset($args['search_food_types'])) { 630 614 foreach ($args['search_food_types'] as $type) { 631 615 if (is_numeric($type)) { … … 665 649 ), $args); 666 650 667 if (! $args['search_keywords'] && !$args['search_categories']&& !$search_food_menu && !$args['search_food_types'] && !apply_filters('wpfm_get_listings_custom_filter', false)) {651 if (!isset($args['search_keywords']) && !isset($args['search_categories']) && !$search_food_menu && !$args['search_food_types'] && !apply_filters('wpfm_get_listings_custom_filter', false)) { 668 652 unset($links['reset']); 669 653 } … … 684 668 if (!function_exists('get_food_manager_rss_link')) : 685 669 /** 686 * Get the Food Listing RSS link670 * This get_food_manager_rss_link() function is used to get the Food Listing RSS link. 687 671 * 688 672 * @return string … … 697 681 698 682 /** 699 * Prepare files for upload by standardizing them into an array. This adds support for multiple file upload fields.683 * This wpfm_prepare_uploaded_files() function Prepare files for upload by standardizing them into an array. This adds support for multiple file upload fields. 700 684 * 701 685 * @param array $file_data … … 728 712 729 713 /** 730 * Upload a file using WordPress file API.714 * This wpfm_upload_file() function is used to Upload a file using WordPress file API. 731 715 * 732 716 * @param array $file_data Array of $_FILE data to upload. 733 * @param array $args Optional arguments 734 * @return array|WP_Error Array of objects containing either file information or an error 717 * @param array $args Optional arguments. 718 * @return array|WP_Error Array of objects containing either file information or an error. 735 719 * @since 1.0.0 736 720 */ … … 758 742 759 743 /** 760 * Filter file configuration before upload 744 * Filter file configuration before upload. 745 * This filter can be used to modify the file arguments before being uploaded, or return a WP_Error object to prevent the file from being uploaded, and return the error. 761 746 * 762 * This filter can be used to modify the file arguments before being uploaded, or return a WP_Error 763 * object to prevent the file from being uploaded, and return the error. 764 * 765 * @param array $file Array of $_FILE data to upload. 766 * @param array $args Optional file arguments 747 * @param array $file - Array of $_FILE data to upload. 748 * @param array $args - Optional file arguments. 767 749 * @param array $allowed_mime_types Array of allowed mime types from field config or defaults 768 750 * @since 1.0.0 … … 800 782 801 783 /** 802 * Get the food order which is arrange by the backend.784 * This get_food_order_by() function is used to get the food order which is arrange by the backend. 803 785 * 804 786 * @return array … … 820 802 821 803 /** 822 * Allowed Mime types specifically for WP Food Manager.804 * This wpfm_get_allowed_mime_types() function is Allowed Mime types specifically for WP Food Manager. 823 805 * 824 * @param string $field Field used.806 * @param string $field The field key for the upload.. 825 807 * @return array Array of allowed mime types 808 * @param array { 809 * Array of allowed file extensions and mime types. 810 * Key is pipe-separated file extensions. Value is mime type. 811 * } 826 812 * @since 1.0.0 827 813 */ … … 836 822 ); 837 823 838 /** 839 * Mime types to accept in uploaded files. 840 * Default is image, pdf, and doc(x) files. 841 * 842 * @param array { 843 * Array of allowed file extensions and mime types. 844 * Key is pipe-separated file extensions. Value is mime type. 845 * } 846 * @param string $field The field key for the upload. 847 * @since 1.0.0 848 */ 824 // Mime types to accept in uploaded files, Default is image, pdf, and doc(x) files. 849 825 return apply_filters('wpfm_mime_types', $allowed_mime_types, $field); 850 826 } 851 827 852 828 /** 853 * Get the page ID of a page if set, with PolyLang compat.854 * @param string $page e.g. food_dashboard, add_food, foods 829 * This food_manager_get_page_id() function is used to get the page ID of a page if set, with PolyLang compat. 830 * @param string $page e.g. food_dashboard, add_food, foods. 855 831 * @return int 856 832 * @since 1.0.0 … … 866 842 867 843 /** 868 * Get the permalink of a page if set844 * This food_manager_get_permalink() function is used to get the permalink of a page if set. 869 845 * @param string $page e.g. food_dashboard, add_food, foods 870 846 * @return string|bool … … 880 856 881 857 /** 882 * Duplicatethe food by food id.858 * This food_manager_duplicate_listing() function Duplicates the food by food id. 883 859 * @param int $post_id 884 860 * @return int 0 on fail or the post ID. … … 891 867 global $wpdb; 892 868 893 /** 894 * Duplicate the post. 895 */ 869 // Duplicate the post. 870 896 871 $new_post_id = wp_insert_post(array( 897 872 'comment_status' => esc_attr($post->comment_status), … … 910 885 )); 911 886 912 /** 913 * Copy taxonomies. 914 */ 887 // Copy taxonomies. 915 888 $taxonomies = get_object_taxonomies($post->post_type); 916 889 foreach ($taxonomies as $taxonomy) { … … 918 891 wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false); 919 892 } 920 921 /* 922 * Duplicate post meta, aside from some reserved fields. 923 */ 893 894 // Duplicate post meta, aside from some reserved fields. 895 924 896 $post_meta = $wpdb->get_results($wpdb->prepare("SELECT meta_key, meta_value FROM {$wpdb->postmeta} WHERE post_id=%d", $post_id)); 925 897 do_action('food_manager_duplicate_listing_meta_start', $post_meta, $post, $new_post_id); … … 939 911 940 912 /** 941 * T rue if only one type allowed per food913 * This food_manager_multiselect_food_type() function return True if only one type allowed per food. 942 914 * 943 915 * @return bool … … 959 931 960 932 /** 961 * T rue if only one category allowed per food933 * This food_manager_multiselect_food_category() function return True if only one category allowed per food. 962 934 * 963 935 * @return bool … … 979 951 980 952 /** 981 * Checks to see if the standard password setup email should be used. 982 * 953 * This food_manager_use_standard_password_setup_email() function checks to see if the standard password setup email should be used. 983 954 * @return bool True if they are to use standard email, false to allow user to set password at first food creation. 955 * @param bool $use_standard_password_setup_email True if a standard account setup email should be sent. 984 956 * @since 1.0.0 985 957 */ … … 987 959 $use_standard_password_setup_email = false; 988 960 // If username is being automatically generated, force them to send password setup email. 989 990 961 if (food_manager_generate_username_from_email()) { 991 962 $use_standard_password_setup_email = get_option('food_manager_use_standard_password_setup_email', 1) == 1 ? true : false; 992 963 } 993 964 994 /** 995 * Allows an override of the setting for if a password should be auto-generated for new users. 996 * 997 * @param bool $use_standard_password_setup_email True if a standard account setup email should be sent. 998 * @since 1.0.0 999 */ 965 // Allows an override of the setting for if a password should be auto-generated for new users. 1000 966 return apply_filters('food_manager_use_standard_password_setup_email', $use_standard_password_setup_email); 1001 967 } 1002 968 1003 969 /** 1004 * Checksif a password should be auto-generated for new users.970 * This food_manager_validate_new_password() function Check if a password should be auto-generated for new users. 1005 971 * 1006 972 * @param string $password Password to validate. 1007 973 * @return bool True if password meets rules. 974 * @param bool $is_valid_password True if new password is validated. 975 * @param string $password - Password to validate. 1008 976 * @since 1.0.0 1009 977 */ … … 1012 980 $is_valid_password = strlen(trim($password)) >= 8; 1013 981 1014 /** 1015 * Allows overriding default food Manager password validation rules. 1016 * 1017 * @param bool $is_valid_password True if new password is validated. 1018 * @param string $password Password to validate. 1019 * @since 1.0.0 1020 */ 982 // Allows overriding default food Manager password validation rules. 1021 983 return apply_filters('food_manager_validate_new_password', $is_valid_password, $password); 1022 984 } 1023 985 1024 986 /** 1025 * Returns the password rules hint.1026 * 987 * This food_manager_get_password_rules_hint() function Returns the password rules hint. 988 * @param string $password_rules Password rules description. 1027 989 * @return string 1028 990 * @since 1.0.0 1029 991 */ 1030 992 function food_manager_get_password_rules_hint() { 1031 1032 /** 1033 * Allows overriding the hint shown below the new password input field. Describes rules set in `food_manager_validate_new_password`. 1034 * 1035 * @param string $password_rules Password rules description. 1036 * @since 1.0.0 1037 */ 993 // Allows overriding the hint shown below the new password input field. Describes rules set in `food_manager_validate_new_password`. 1038 994 return apply_filters('food_manager_password_rules_hint', __('Passwords must be at least 8 characters long.', 'wp-food-manager')); 1039 995 } … … 1041 997 if (!function_exists('get_food_listing_post_statuses')) : 1042 998 /** 1043 * Get post statuses used for foods.999 * This get_food_listing_post_statuses() function is used to get post statuses used for foods. 1044 1000 * 1045 1001 * @access public … … 1061 1017 if (!function_exists('get_food_listing_types')) : 1062 1018 /** 1063 * Get food listing types.1019 * This get_food_listing_types() function is used to get food listing types. 1064 1020 * 1065 1021 * @access public … … 1079 1035 ); 1080 1036 $args = apply_filters('get_food_listing_types_args', $args); 1081 // Prevent users from filtering the taxonomy 1037 // Prevent users from filtering the taxonomy. 1082 1038 $args['taxonomy'] = 'food_manager_type'; 1083 1039 return get_terms($args); … … 1088 1044 if (!function_exists('get_food_listing_categories')) : 1089 1045 /** 1090 * Get food categories.1046 * This get_food_listing_categories() function is used to get food categories. 1091 1047 * 1092 1048 * @access public 1049 * @param array $args 1093 1050 * @return array 1094 1051 * @since 1.0.0 … … 1103 1060 'hide_empty' => false, 1104 1061 ); 1105 /** 1106 * Change the category query arguments. 1107 * 1108 * @param array $args 1109 * @since 1.0.0 1110 */ 1062 // Change the category query arguments. 1111 1063 $args = apply_filters('get_food_listing_category_args', $args); 1112 1064 // Prevent users from filtering the taxonomy. … … 1117 1069 1118 1070 /** 1119 * Get Base Currency Code.1071 * This get_food_manager_currency() function is used to get Base Currency Code. 1120 1072 * 1121 1073 * @return string … … 1127 1079 1128 1080 /** 1129 * Get full list of currency codes.1130 * Currency symbols and names should follow the Unicode CLDR recommendation (https://cldr.unicode.org/translation/currency-names-and-symbols) 1081 * This get_food_manager_currencies() function is used to get full list of currency codes. 1082 * Currency symbols and names should follow the Unicode CLDR recommendation (https://cldr.unicode.org/translation/currency-names-and-symbols). 1131 1083 * 1132 1084 * @return array … … 1313 1265 1314 1266 /** 1315 * Get all available Currency symbols.1316 * Currency symbols and names should follow the Unicode CLDR recommendation (https://cldr.unicode.org/translation/currency-names-and-symbols) 1267 * This get_food_manager_currency_symbols() function is used to Get all available Currency symbols. 1268 * Currency symbols and names should follow the Unicode CLDR recommendation (https://cldr.unicode.org/translation/currency-names-and-symbols). 1317 1269 * 1318 1270 * @return array … … 1494 1446 1495 1447 /** 1496 * Get Currency symbol.1497 * Currency symbols and names should follow the Unicode CLDR recommendation (https://cldr.unicode.org/translation/currency-names-and-symbols) 1498 * 1499 * @param string $currency Currency.(default: '').1448 * This get_food_manager_currency_symbol() function is used to get Currency symbol. 1449 * Currency symbols and names should follow the Unicode CLDR recommendation (https://cldr.unicode.org/translation/currency-names-and-symbols). 1450 * 1451 * @param string $currency (default: ''). 1500 1452 * @return string 1501 1453 * @since 1.0.0 … … 1511 1463 1512 1464 /** 1513 * Get the price format depending on the currency position.1465 * This get_food_manager_price_format() function is used to get the price format depending on the currency position. 1514 1466 * 1515 1467 * @return string … … 1539 1491 1540 1492 /** 1541 * Returnthe thousand separator for prices.1493 * This wpfm_get_price_thousand_separator() function returns the thousand separator for prices. 1542 1494 * 1543 1495 * @return string … … 1549 1501 1550 1502 /** 1551 * Returnthe decimal separator for prices.1503 * This wpfm_get_price_decimal_separator() function returns the decimal separator for prices. 1552 1504 * 1553 1505 * @return string … … 1560 1512 1561 1513 /** 1562 * Returnthe number of decimals after the decimal point.1514 * This wpfm_get_price_decimals() function returns the number of decimals after the decimal point. 1563 1515 * 1564 1516 * @return int … … 1570 1522 1571 1523 /** 1572 * Returns the wordpress dashicons's content with classes.1524 * This wpfm_get_dashicons() function returns the wordpress dashicons's content with classes. 1573 1525 * 1574 1526 * @return array … … 1744 1696 1745 1697 /** 1746 * Returnthe food font icons.1698 * This wpfm_get_font_food_icons() function returns the food font icons. 1747 1699 * 1748 1700 * @return array … … 1789 1741 1790 1742 /** 1791 * Checkif given string ($str) is begin with the second parameter ($begnString) of function.1743 * This wpfm_begnWith() Checks if given string ($str) is begin with the second parameter ($begnString) of function. 1792 1744 * 1793 1745 * @param string $str … … 1806 1758 if (!function_exists('get_food_listings_keyword_search')) : 1807 1759 /** 1808 * Join and where query for keywords1760 * This get_food_listings_keyword_search() function Join and where query for keywords. 1809 1761 * 1810 1762 * @param array $search … … 1814 1766 global $wpdb, $food_manager_keyword; 1815 1767 1816 // Searchable Meta Keys: set to empty to search all meta keys 1768 // Searchable Meta Keys: set to empty to search all meta keys. 1817 1769 $searchable_meta_keys = array( 1818 1770 '_food_location', … … 1823 1775 $conditions = array(); 1824 1776 1825 // Search Post Meta 1777 // Search Post Meta. 1826 1778 if (apply_filters('food_listing_search_post_meta', true)) { 1827 // Only selected meta keys 1779 // Only selected meta keys. 1828 1780 if ($searchable_meta_keys) { 1829 1781 $conditions[] = "{$wpdb->posts}.ID IN ( SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key IN ( '" . implode("','", array_map('esc_sql', $searchable_meta_keys)) . "' ) AND meta_value LIKE '%" . esc_sql($food_manager_keyword) . "%' )"; … … 1834 1786 } 1835 1787 1836 // Search taxonomy 1788 // Search taxonomy. 1837 1789 $conditions[] = "{$wpdb->posts}.ID IN ( SELECT object_id FROM {$wpdb->term_relationships} AS tr LEFT JOIN {$wpdb->term_taxonomy} AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id LEFT JOIN {$wpdb->terms} AS t ON tt.term_id = t.term_id WHERE t.name LIKE '%" . esc_sql($food_manager_keyword) . "%' )"; 1838 1790 … … 1840 1792 * Filters the conditions to use when querying food listings. Resulting array is joined with OR statements. 1841 1793 * 1842 * @param array $conditions Conditions to join by OR when querying food listings.1794 * @param array $conditions - Conditions to join by OR when querying food listings. 1843 1795 * @param string $food_manager_keyword Search query. 1844 * @since 1.0.01845 1796 */ 1846 1797 $conditions = apply_filters('food_listing_search_conditions', $conditions, $food_manager_keyword); … … 1862 1813 1863 1814 /** 1864 * Checks if the user can upload a file via the Ajax endpoint.1865 * 1815 * This food_manager_user_can_upload_file_via_ajax() function Checks if the user can upload a file via the Ajax endpoint. 1816 * @param bool $can_upload True if they can upload files from Ajax endpoint. 1866 1817 * @return bool 1867 1818 * @since 1.0.0 … … 1870 1821 $can_upload = is_user_logged_in() && wpfm_user_can_post_food(); 1871 1822 1872 /** 1873 * Override ability of a user to upload a file via Ajax. 1874 * 1875 * @param bool $can_upload True if they can upload files from Ajax endpoint. 1876 * @since 1.0.0 1877 */ 1823 // Override ability of a user to upload a file via Ajax. 1878 1824 return apply_filters('food_manager_user_can_upload_file_via_ajax', esc_attr($can_upload)); 1879 1825 } 1880 1826 1881 1827 /** 1882 * Checks if the user can upload a file via the Ajax endpoint.1828 * This wpfm_extra_topping_form_fields() function checks if the user can upload a file via the Ajax endpoint. 1883 1829 * 1884 1830 * @param mixed $post … … 2093 2039 2094 2040 /** 2095 * Use radio inputs instead of checkboxes for term checklists in specified taxonomies such as 'food_manager_type'.2041 * This wpfm_term_radio_checklist_for_food_type() Use radio inputs instead of checkboxes for term checklists in specified taxonomies such as 'food_manager_type'. 2096 2042 * 2097 2043 * @param array $args … … 2132 2078 2133 2079 /** 2134 * Checkif given array is multi-array or not.2080 * This wpfm_isMultiArray() Checks if given array is multi-array or not. 2135 2081 * 2136 2082 * @return bool … … 2146 2092 2147 2093 /** 2148 * Return the given taxnomy list array and display the category checklist html.2094 * This wpfm_category_checklist() function return the given taxnomy list array and display the category checklist html. 2149 2095 * 2150 2096 * @return $popular_ids … … 2155 2101 */ 2156 2102 function wpfm_category_checklist($taxonomy, $key_name, $checked_term) { 2157 // Get terms 2103 // Get terms. 2158 2104 $terms = get_terms( 2159 2105 array( … … 2164 2110 ); 2165 2111 2166 // Get taxonomy 2112 // Get taxonomy. 2167 2113 $tax = get_taxonomy($taxonomy); 2168 2114 $popular_ids = array(); … … 2184 2130 2185 2131 /** 2186 * Returnthe given taxnomy list array and display the category dropdown html.2132 * This wpfm_dropdown_categories() returns the given taxnomy list array and display the category dropdown html. 2187 2133 * 2188 2134 * @return $popular_ids … … 2217 2163 2218 2164 /** 2219 * Checkif term id given as a terms array is exist or not.2165 * This is_wpfm_terms_exist() checks if term id given as a terms array is exist or not. 2220 2166 * 2221 2167 * @return $displayTerms … … 2237 2183 return esc_attr($displayTerms); 2238 2184 } 2185 2186 /** 2187 * This function is used to display those food menus which is added by current user. 2188 * 2189 * @since 1.0.0 2190 */ 2191 function wpfm_term_menu_lists(){ 2192 global $wpdb; 2193 $current_user = wp_get_current_user(); 2194 $authors = [ $current_user->ID ]; 2195 2196 $query_args = [ 2197 'author__in' => $authors, 2198 'post_type' => 'food_manager_menu', 2199 'post_per_page' => '1', 2200 'order' => 'ASC' 2201 ]; 2202 2203 $wpfm_menu_lists = get_posts( $query_args ); 2204 if( !empty( $wpfm_menu_lists ) ) : 2205 $items = array(); 2206 foreach( $wpfm_menu_lists as $wpfm_menu_list ) : 2207 $items[$wpfm_menu_list->ID] = $wpfm_menu_list->post_title; 2208 endforeach; ?> 2209 <?php endif; 2210 if(!empty($items)){ 2211 return $items; 2212 } 2213 } -
wp-food-manager/trunk/wp-food-manager-template.php
r2930934 r3022874 2 2 3 3 /** 4 * T emplate Functions4 * This file contain all templates realted functions. 5 5 * Template functions specifically created for food listings and other food related methods. 6 6 * … … 9 9 */ 10 10 11 /** 12 * Returns the translated role of the current user. If that user has 13 * no role for the current blog, it returns false.11 12 /** 13 * Returns the translated role of the current user. If that user has no role for the current blog, it returns false. 14 14 * 15 15 * @return string The name of the current role … … 126 126 127 127 /** 128 * Get the template part (for templates in loops).128 * This get_food_manager_template_part() function is used to get the template part (for templates in loops). 129 129 * 130 130 * @param string $slug … … 148 148 149 149 /** 150 * Get the food banner url if not then return placeholder image.150 * This get_food_banner() function is used to get the food banner url if not then return placeholder image. 151 151 * 152 152 * @access public … … 171 171 172 172 /** 173 * Get the food Thumbnail url if not then return placeholder image.173 * This get_food_thumbnail() function is used to get the food Thumbnail url if not then return placeholder image. 174 174 * 175 175 * @access public … … 190 190 191 191 /** 192 * Display the food price tag.192 * This display_food_price_tag() function is used to display the food price tag. 193 193 * 194 194 * @access public … … 227 227 228 228 /** 229 * Display the food banner.229 * This display_food_banner() function is used to display the food banner. 230 230 * 231 231 * @access public … … 253 253 254 254 /** 255 * This function is use to get the countsthe food views and also used at food.255 * This get_food_views_count() function is use to get the counts of the food views and also used at food. 256 256 * 257 257 * @return number counted view. … … 271 271 272 272 /** 273 * Display the food veg or non-veg or vegan icon.273 * This display_food_veg_nonveg_icon_tag() function is used to display the food veg or non-veg or vegan icon. 274 274 * 275 275 * @access public … … 304 304 if (!empty($imagePath)) { 305 305 $data_icon_label = ucwords(str_replace("-", " ", sanitize_title($wpfm_veg_nonveg_tag->slug))); 306 echo '<div class=" parent-organic-tag ' . sanitize_title($wpfm_veg_nonveg_tag->slug) . '" data-icon-type="' . $data_icon_label. '"><img alt="' . $wpfm_veg_nonveg_tag->slug . '" src="' . $imagePath . '" class="wpfm-organic-tag-icon ' . sanitize_title($wpfm_veg_nonveg_tag->slug) . '"></div>';306 echo '<div class="wpfm-food-type-tag ' . sanitize_title($wpfm_veg_nonveg_tag->slug) . '"><img alt="' . $wpfm_veg_nonveg_tag->slug . '" src="' . $imagePath . '" class="wpfm-organic-tag-icon ' . sanitize_title($wpfm_veg_nonveg_tag->slug) . '"></div>'; 307 307 } 308 308 } … … 311 311 312 312 /** 313 * Get the food veg or non-veg or vegan icon.313 * This get_food_veg_nonveg_icon_tag() function is used to get the food veg or non-veg or vegan icon. 314 314 * 315 315 * @access public … … 328 328 329 329 /** 330 * Display the food type.330 * This display_food_type() function is used to display the food type. 331 331 * 332 332 * @access public … … 360 360 361 361 /** 362 * Get the food type.362 * This get_food_type() function is used get the food type. 363 363 * 364 364 * @access public … … 379 379 380 380 /** 381 * Display the food tag.381 * This display_food_tag() function is used to display the food tag. 382 382 * 383 383 * @access public … … 411 411 412 412 /** 413 * Get the food tag.413 * This get_food_tag() function is used to get the food tag. 414 414 * 415 415 * @access public … … 430 430 431 431 /** 432 * Display the food Category.432 * This display_food_category() function is used to display the food Category. 433 433 * 434 434 * @access public … … 452 452 'class' => array() 453 453 ), 454 455 454 )); 456 455 if ($numCategory > ++$i) { … … 465 464 466 465 /** 467 * Get the food Category.466 * This get_food_category() function is used to get the food Category. 468 467 * 469 468 * @access public … … 482 481 483 482 /** 484 * Display the food ingredients.483 * This display_food_ingredients() function is used to display the food ingredients. 485 484 * 486 485 * @access public … … 513 512 514 513 /** 515 * Get the food ingredients.514 * This get_food_ingredients() function is used to get the food ingredients. 516 515 * 517 516 * @access public … … 530 529 531 530 /** 532 * Display the food nutritions.531 * This display_food_nutritions() function is used to display the food nutritions. 533 532 * 534 533 * @access public … … 561 560 562 561 /** 563 * Get the food nutritions.562 * This get_food_nutritions() function is used to get the food nutritions. 564 563 * 565 564 * @access public … … 578 577 579 578 /** 580 * Display the food Units.579 * This display_food_units() function is used to display the food Units. 581 580 * 582 581 * @access public … … 602 601 603 602 /** 604 * Get the food Units.603 * This get_food_units() function is used to get the food Units. 605 604 * 606 605 * @access public … … 619 618 620 619 /** 621 * Display the food permalink.620 * This display_food_permalink() function is used to diplay the food permalink. 622 621 * 623 622 * @access public … … 631 630 632 631 /** 633 * Get the food permalink.632 * This get_food_permalink() function is used to get the food permalink. 634 633 * 635 634 * @access public … … 645 644 646 645 /** 647 * Display the Class attribute with the class formatted string.646 * This food_manager_class() function is used to display the Class attribute with the class formatted string. 648 647 * 649 648 * @access public … … 659 658 660 659 /** 661 * Get the Class with the class formatted string.660 * This get_food_manager_class() function is used to get the Class with the class formatted string. 662 661 * 663 662 * @access public … … 694 693 695 694 /** 696 * Outputsthe Food status.695 * This display_food_status() function is used to outputs Of the Food status. 697 696 * 698 697 * @param $post (default: null) … … 705 704 706 705 /** 707 * Gets the food status.706 * This get_food_status() function is used to gets the food status. 708 707 * 709 708 * @param $post (default: null) … … 724 723 725 724 /** 726 * Display the food stock status.725 * This display_stock_status() function is used to display the food stock status. 727 726 * 728 727 * @access public … … 733 732 */ 734 733 function display_stock_status($post = null, $after = '') { 735 if ($food_stock_status = get_stock_status($post)) { 736 if (!empty($food_stock_status)) { 737 $food_stock_status_label = ""; 738 if ($food_stock_status == 'fm_instock') { 739 $food_stock_status_label = 'In stock'; 740 } 741 if ($food_stock_status == 'fm_outofstock') { 742 $food_stock_status_label = 'Out of stock'; 743 } 744 echo '<mark class="' . $food_stock_status . '">' . esc_html($food_stock_status_label) . '</mark>'; 745 } 746 } 747 } 748 749 /** 750 * Get the food stock status. 734 $food_stock_status = get_stock_status($post); 735 736 if (is_array($food_stock_status)) { 737 //display individual stock statuses. 738 foreach ($food_stock_status as $status) { 739 display_single_stock_status($status); 740 } 741 } else if (is_string($food_stock_status) && !empty($food_stock_status)) { 742 // Handling string type 743 $food_stock_status_label = ""; 744 if ($food_stock_status == 'fm_instock') { 745 $food_stock_status_label = 'In stock'; 746 } elseif ($food_stock_status == 'fm_outofstock') { 747 $food_stock_status_label = 'Out of stock'; 748 } 749 echo '<mark class="' . esc_attr($food_stock_status) . '">' . esc_html($food_stock_status_label) . '</mark>'; 750 } 751 } 752 753 /** 754 * This display_single_stock_status() function is used to display individual stock status. 755 * 756 * @access public 757 * @return void 758 * @since 1.0.0 759 */ 760 function display_single_stock_status($food_stock_status) { 761 $food_stock_status_label = ""; 762 if ($food_stock_status == 'fm_instock') { 763 $food_stock_status_label = 'In stock'; 764 } elseif ($food_stock_status == 'fm_outofstock') { 765 $food_stock_status_label = 'Out of stock'; 766 } 767 echo '<mark class="' . esc_attr($food_stock_status) . '">' . esc_html($food_stock_status_label) . '</mark>'; 768 } 769 770 /** 771 * This get_stock_status() function is used to get the food stock status. 751 772 * 752 773 * @access public … … 757 778 function get_stock_status($post = null) { 758 779 $post = get_post($post); 759 $stock_status = get_post_meta( get_the_ID(), '_food_stock_status', true);780 $stock_status = get_post_meta($post->ID, '_food_stock_status', true); 760 781 return apply_filters('display_stock_status', $stock_status, $post); 761 782 } 762 783 763 784 /** 764 * Display the food description.785 * This display_food_description() is used to display the food description. 765 786 * 766 787 * @param int|WP_Post $post (default: null) … … 775 796 776 797 /** 777 * Get the food description.798 * This get_food_description() function is used to get the food description. 778 799 * 779 800 * @param int|WP_Post $post (default: null) 780 801 * @return string|bool|null 802 * @param string $description Description to be filtered. 781 803 * @since 1.0.0 782 804 */ … … 787 809 } 788 810 $description = apply_filters('display_food_description', get_the_content($post)); 789 /** 790 * Filter for the food description. 791 * 792 * @param string $description Description to be filtered. 793 * @param int|WP_Post $post 794 * @since 1.0.0 795 */ 811 812 // This Filter apply for the food description. 796 813 return apply_filters('food_manager_get_food_description', sanitize_textarea_field($description), $post); 797 814 } 798 815 799 816 /** 800 * Display the food title.817 * This display_food_title() function is used to display the food title. 801 818 * 802 819 * @param int|WP_Post $post … … 811 828 812 829 /** 813 * Get the food title.830 * This get_food_title() funnction is used to get the food title. 814 831 * 815 832 * @param int|WP_Post $post (default: null) 816 833 * @return string|bool|null 834 * @param string $title Title to be filtered. 817 835 * @since 1.0.0 818 836 */ … … 823 841 } 824 842 $title = esc_html(get_the_title($post)); 825 /** 826 * Filter for the food title. 827 * 828 * @param string $title Title to be filtered. 829 * @param int|WP_Post $post 830 * @since 1.0.0 831 */ 843 844 // This Filter apply for the food title. 832 845 return apply_filters('display_food_title', sanitize_text_field($title), $post); 833 846 } 834 847 835 848 /** 836 * Returns if we allow indexing of a food listing.849 * This wpfm_allow_indexing_food_listing() function Returns if we allow indexing of a food listing. 837 850 * 838 851 * @param WP_Post|int|null $post (default: null) 839 852 * @return bool 853 * @param bool $index_food_listing True if we should allow indexing of food listing. 840 854 * @since 1.0.0 841 855 */ … … 847 861 // Only index food listings that are not expired and published. 848 862 $index_food_listing = 'publish' === $post->post_status; 849 /** 850 * Filter if we should allow indexing of food listing. 851 * 852 * @param bool $index_food_listing True if we should allow indexing of food listing. 853 * @since 1.0.0 854 */ 863 864 // This Filter apply if we should allow indexing of food listing. 855 865 return apply_filters('wpfm_allow_indexing_food_listing', $index_food_listing); 856 866 } 857 867 858 868 /** 859 * Returns if we output food listing structured data for a post.869 * This wpfm_output_food_listing_structured_data() function Returns if we output food listing structured data for a post. 860 870 * 861 871 * @param WP_Post|int|null $post (default: null) 862 872 * @return bool 873 * @param bool $output_structured_data True if we should show structured data for post. 863 874 * @since 1.0.0 864 875 */ … … 870 881 // Only show structured data for un-filled and published food listings. 871 882 $output_structured_data = 'publish' === $post->post_status; 872 /** 873 * Filter if we should output structured data. 874 * 875 * @param bool $output_structured_data True if we should show structured data for post. 876 * @since 1.0.0 877 */ 883 884 // This Filter apply if we should output structured data. 878 885 return apply_filters('wpfm_output_food_listing_structured_data', $output_structured_data); 879 886 } 880 887 881 888 /** 882 * Gets the structured data for the food listing.889 * This wpfm_get_food_listing_structured_data() function is used to gets the structured data for the food listing. 883 890 * 884 891 * @see https://developers.google.com/search/docs/data-types/foods … … 886 893 * @param WP_Post|int|null $post (default: null) 887 894 * @return bool|array False if functionality is disabled; otherwise array of structured data. 895 * @param bool|array $structured_data False if functionality is disabled; otherwise array of structured data. 888 896 * @since 1.0.0 889 897 */ … … 910 918 $data['image'] = $food_banner; 911 919 $data['foodStatus'] = 'foodScheduled'; 912 /** 913 * Filter the structured data for a food listing. 914 * 915 * @param bool|array $structured_data False if functionality is disabled; otherwise array of structured data. 916 * @param WP_Post $post 917 * @since 1.0.0 918 */ 920 921 // Filter the structured data for a food listing. 919 922 return apply_filters('wpfm_get_food_listing_structured_data', $data, $post); 920 923 } -
wp-food-manager/trunk/wp-food-manager.php
r2930934 r3022874 2 2 3 3 /** 4 * Contributors: wpfoodmanager,ashokdudhat,krinay 4 5 * Plugin Name: WP Food Manager 5 6 * Plugin URI: https://www.wpfoodmanager.com/ … … 9 10 * Text Domain: wp-food-manager 10 11 * Domain Path: /languages 11 * Version: 1.0. 412 * Version: 1.0.5 12 13 * Since: 1.0.0 13 14 * Requires WordPress Version at least: 4.1 … … 52 53 * Main WP Food Manager Instance. 53 54 * Ensures only one instance of WP Food Manager is loaded or can be loaded. 54 * 55 * 55 56 * @static 56 57 * @see WP_Food_Manager()
Note: See TracChangeset
for help on using the changeset viewer.