PluginProbe
WP Directory Kit / 1.5.9
WP Directory Kit v1.5.9
1.5.9 1.5.7 1.5.6 1.5.5 1.5.4 1.5.3 trunk 1.1.0 1.1.6 1.1.8 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.8 All 37 releases
← All changes | application/views/wdk_listing/index.php +722 -495 1.2.5 → 1.5.9 View file →
@@ -1,5 +1,6 @@
1 1 <?php
2 +
2 3 /**
3 4 * The template for Edit Listing.
4 5 *
5 6 * This is the template that form edit
@@ -5,157 +6,217 @@
5 6 * This is the template that form edit
6 7 *
7 8 */
8 9
9 -if ( ! defined( 'ABSPATH' ) ) {
10 - exit; // Exit if accessed directly.
10 +if (! defined('ABSPATH')) {
11 + exit; // Exit if accessed directly.
11 12 }
12 13 ?>
13 14
14 15 <!-- This file should primarily consist of HTML with a little bit of PHP. -->
15 16 <div class="wrap wdk-wrap">
16 - <h1 class="wp-heading-inline"><?php echo __('Add/Edit Listing', 'wpdirectorykit'); ?></h1>
17 - <br /><br />
18 - <div class="wdk-body">
19 - <form method="post" class="form_listing" action="<?php echo wmvc_current_edit_url(); ?>" enctype="multipart/form-data" novalidate="novalidate">
20 - <?php wp_nonce_field( 'wdk-listing-edit_'.wmvc_show_data('ID', $db_data, 0), '_wpnonce'); ?>
17 + <h1 class="wp-heading-inline"><?php echo esc_html__('Add/Edit Listing', 'wpdirectorykit'); ?></h1>
18 + <br />
21 19
20 + <?php if (!function_exists('run_wdk_membership')): ?>
21 + <div class="notice notice-success">
22 + <p>
23 + <?php echo esc_html__('Do you need to add listing on frontend or allow visitors to add own listings?', 'wpdirectorykit'); ?>
24 + <a href="https://wpdirectorykit.com/plugins/wp-directory-membership.html" target="_blank">
25 + <?php echo esc_html__('Purchase our premium Membership feature and support our work!', 'wpdirectorykit'); ?>
26 + </a>
27 + </p>
28 + </div>
29 + <?php endif; ?>
30 +
31 + <div class="wdk-body wdk-body-listing">
32 + <?php do_action('wdk/listing/edit/aboveform', wmvc_show_data('ID', $db_data)); ?>
33 +
34 + <?php $this->view('wdk_listing/inc/quick-nav-listings',$data); ?>
35 +
36 + <form method="post" class="form_listing form_listing_ai" action="<?php echo esc_url(wmvc_current_edit_url()); ?>" enctype="multipart/form-data" novalidate="novalidate">
37 + <?php wp_nonce_field('wdk-listing-edit_' . wmvc_show_data('ID', $db_data, 0), '_wpnonce'); ?>
38 +
22 39 <div class="postbox" style="display: block;">
23 40 <div class="postbox-header">
24 - <h3 class="wide">
25 - <?php echo __('Main Data', 'wpdirectorykit'); ?>
26 - <?php if(get_option('wdk_sub_listings_enable')): ?>
27 - <?php if(!empty(wmvc_show_data('listing_parent_post_id', $db_data))):?>
28 - <?php echo __('Child Listing of', 'wpdirectorykit'); ?> <a target="_blank" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id='.wmvc_show_data('listing_parent_post_id', $db_data)));?>"><?php echo esc_html(wdk_field_value('post_title', wmvc_show_data('listing_parent_post_id', $db_data)));?></a>
29 - <?php elseif(isset($_GET['parent_post_id']) && !empty($_GET['parent_post_id'])):?>
30 - <?php echo __('Child Listing of', 'wpdirectorykit'); ?> <a target="_blank" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id='.intval($_GET['parent_post_id'])));?>"><?php echo esc_html(wdk_field_value('post_title', intval($_GET['parent_post_id'])));?></a>
31 - <?php endif;?>
32 - <?php endif;?>
41 + <h3 class="wide wdk-gap-15 wdk-d-flex wdk-align-items-start wdk-align-items-center">
42 + <?php echo esc_html__('Main Data', 'wpdirectorykit'); ?> <?php if (function_exists('PLL')): ?>[<?php echo esc_attr(pll_get_post_language(wmvc_show_data('ID', $db_data, 0), 'slug')); ?>]<?php endif; ?>
43 +
44 + <a href="#"
45 + <?php if (!file_exists(ABSPATH . 'wp-content/plugins/wdk-geo/wdk-geo.php')): ?>
46 + class="wdk-mr-5 button button-primary alignright wdk-pro"
47 + data-button-succuss="<?php echo esc_attr__('Purchase Now', 'wpdirectorykit'); ?>"
48 + data-title="<?php echo esc_attr__('Your version doesn\'t support this functionality, please upgrade', 'wpdirectorykit'); ?>"
49 + data-content="<?php echo esc_attr__('We constantly maintain compatibility and improving this plugin for living, please support us and purchase, we provide very reasonable prices and will always do our best to help you!', 'wpdirectorykit'); ?>"
50 + data-action="https://wpdirectorykit.com/plugin/wp-directory-geo-coding/"
51 + <?php elseif (file_exists(ABSPATH . 'wp-content/plugins/wdk-geo/wdk-geo.php') && !function_exists('run_wdk_geo')): ?>
52 + class="wdk-mr-5 button button-primary alignright wdk-pro"
53 + data-button-succuss="<?php echo esc_attr__('Activate addon WDK Geo', 'wpdirectorykit'); ?>"
54 + data-title="<?php echo esc_attr__('Your version doesn\'t support this functionality, please upgrade', 'wpdirectorykit'); ?>"
55 + data-content="<?php echo esc_attr__('We constantly maintain compatibility and improving this plugin for living, please support us and purchase, we provide very reasonable prices and will always do our best to help you!', 'wpdirectorykit'); ?>"
56 +
57 + data-action="<?php echo esc_url(get_admin_url() . "plugins.php?plugin_status=all#activate-wdk-geo"); ?>"
58 + <?php else: ?>
59 + class="wdk-mr-5 button button-primary alignright wdk-geo-listing-google-places-search-btn"
60 + <?php endif; ?>>
61 + <?php echo esc_html__('Google Maps Search', 'wpdirectorykit') ?>
62 + </a>
63 +
64 + <?php if (get_option('wdk_sub_listings_enable')): ?>
65 + <?php if (!empty(wmvc_show_data('listing_parent_post_id', $db_data))): ?>
66 + <?php echo esc_html__('Child Listing of', 'wpdirectorykit'); ?> <a target="_blank" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id=' . wmvc_show_data('listing_parent_post_id', $db_data))); ?>"><?php echo esc_html(wdk_field_value('post_title', wmvc_show_data('listing_parent_post_id', $db_data))); ?></a>
67 + <?php elseif (isset($_GET['parent_post_id']) && !empty($_GET['parent_post_id'])): ?>
68 + <?php echo esc_html__('Child Listing of', 'wpdirectorykit'); ?> <a target="_blank" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id=' . intval($_GET['parent_post_id']))); ?>"><?php echo esc_html(wdk_field_value('post_title', intval($_GET['parent_post_id']))); ?></a>
69 + <?php endif; ?>
70 + <?php endif; ?>
33 71 </h3>
34 - <?php if(!empty(wmvc_show_data('ID', $db_data))):?>
35 72
36 - <?php if($calendar_id):?>
37 - <a href="<?php echo get_admin_url() . "admin.php?page=wdk-bookings-calendar&function=edit&id=".esc_attr($calendar_id); ?>"
38 - class="wdk-mr-5 button button-secondary alignright"
39 - >
40 - <span class="dashicons dashicons-calendar" style="margin-top: 4px;"></span> <?php echo __('Edit Calendar','wpdirectorykit')?>
41 - </a>
42 - <?php endif;?>
73 + <?php do_action('wdk/listing/edit/top/buttons/before', wmvc_show_data('ID', $db_data)); ?>
74 + <?php if (!empty(wmvc_show_data('ID', $db_data))): ?>
43 75
44 - <a href="<?php echo get_admin_url() . "admin.php?page=wdk-duplicate-listing&function=duplicate&listing_post_id=".wmvc_show_data('ID', $db_data); ?>"
45 - <?php if ( !file_exists(ABSPATH . 'wp-content/plugins/wdk-duplicate-listing/wdk-duplicate-listing.php') ):?>
46 - class="wdk-mr-5 button button-secondary alignright wdk-pro"
47 - data-button-succuss = "<?php echo esc_attr__('Purchase Now', 'wpdirectorykit');?>"
48 - data-title = "<?php echo esc_attr__('Your version doesn\'t support this functionality, please upgrade', 'wpdirectorykit');?>"
49 - data-content = "<?php echo esc_attr__('We constantly maintain compatibility and improving this plugin for living, please support us and purchase, we provide very reasonable prices and will always do our best to help you!','wpdirectorykit');?>"
50 - data-action = "https://www.wpdirectorykit.com/plugins/wp-directory-duplicate-listing.html"
51 - <?php elseif ( file_exists(ABSPATH . 'wp-content/plugins/wdk-duplicate-listing/wdk-duplicate-listing.php') && !function_exists('run_wdk_duplicate_listing')):?>
52 - class="wdk-mr-5 button button-secondary alignright wdk-pro"
53 - data-button-succuss = "<?php echo esc_attr__('Activate addon WDK Duplicate Listing', 'wpdirectorykit');?>"
54 - data-title = "<?php echo esc_attr__('Your version doesn\'t support this functionality, please upgrade', 'wpdirectorykit');?>"
55 - data-content = "<?php echo esc_attr__('We constantly maintain compatibility and improving this plugin for living, please support us and purchase, we provide very reasonable prices and will always do our best to help you!','wpdirectorykit');?>"
56 -
57 - data-action = "<?php echo get_admin_url() . "plugins.php?plugin_status=all#activate-wdk-duplicate-listing"; ?>"
58 - <?php else:?>
59 - class="wdk-mr-5 button button-secondary alignright"
60 - <?php endif;?>
61 - >
62 - <span class="dashicons dashicons-admin-page" style="margin-top: 4px;"></span> <?php echo __('Duplicate Listing','wpdirectorykit')?>
76 + <?php if ($calendar_id): ?>
77 + <a href="<?php echo esc_url(get_admin_url() . "admin.php?page=wdk-bookings-calendar&function=edit&id=" . esc_attr($calendar_id)); ?>"
78 + class="wdk-mr-5 button button-secondary alignright">
79 + <span class="dashicons dashicons-calendar"></span> <?php echo esc_html__('Edit Calendar', 'wpdirectorykit') ?>
80 + </a>
81 + <?php endif; ?>
82 +
83 + <a href="<?php echo esc_url(get_admin_url() . "admin.php?page=wdk-duplicate-listing&function=duplicate&listing_post_id=" . wmvc_show_data('ID', $db_data)); ?>"
84 + <?php if (!file_exists(ABSPATH . 'wp-content/plugins/wdk-duplicate-listing/wdk-duplicate-listing.php')): ?>
85 + class="wdk-mr-5 button button-secondary alignright wdk-pro"
86 + data-button-succuss="<?php echo esc_attr__('Purchase Now', 'wpdirectorykit'); ?>"
87 + data-title="<?php echo esc_attr__('Your version doesn\'t support this functionality, please upgrade', 'wpdirectorykit'); ?>"
88 + data-content="<?php echo esc_attr__('We constantly maintain compatibility and improving this plugin for living, please support us and purchase, we provide very reasonable prices and will always do our best to help you!', 'wpdirectorykit'); ?>"
89 + data-action="https://www.wpdirectorykit.com/plugins/wp-directory-duplicate-listing.html"
90 + <?php elseif (file_exists(ABSPATH . 'wp-content/plugins/wdk-duplicate-listing/wdk-duplicate-listing.php') && !function_exists('run_wdk_duplicate_listing')): ?>
91 + class="wdk-mr-5 button button-secondary alignright wdk-pro"
92 + data-button-succuss="<?php echo esc_attr__('Activate addon WDK Duplicate Listing', 'wpdirectorykit'); ?>"
93 + data-title="<?php echo esc_attr__('Your version doesn\'t support this functionality, please upgrade', 'wpdirectorykit'); ?>"
94 + data-content="<?php echo esc_attr__('We constantly maintain compatibility and improving this plugin for living, please support us and purchase, we provide very reasonable prices and will always do our best to help you!', 'wpdirectorykit'); ?>"
95 +
96 + data-action="<?php echo esc_url(get_admin_url() . "plugins.php?plugin_status=all#activate-wdk-duplicate-listing"); ?>"
97 + <?php else: ?>
98 + class="wdk-mr-5 button button-secondary alignright"
99 + <?php endif; ?>>
100 + <span class="dashicons dashicons-admin-page"></span> <?php echo esc_html__('Duplicate Listing', 'wpdirectorykit') ?>
63 101 </a>
64 - <a href="<?php echo get_permalink(wmvc_show_data('ID', $db_data)); ?>" title="<?php echo esc_attr__('View','wpdirectorykit');?>" class="button button-secondary alignright" target="_blank" style="margin-right:15px;"><span class="dashicons dashicons-visibility" style="margin-top: 4px;"></span> <?php echo __('View listing', 'wpdirectorykit'); ?></a>
65 - <?php endif;?>
102 + <a href="<?php echo esc_url(get_permalink(wmvc_show_data('ID', $db_data))); ?>" title="<?php echo esc_attr__('View', 'wpdirectorykit'); ?>" class="button button-secondary alignright" target="_blank" style="margin-right:15px;"><span class="dashicons dashicons-visibility" ></span> <?php echo esc_html__('View listing', 'wpdirectorykit'); ?></a>
103 + <?php endif; ?>
66 104 </div>
67 105 <div class="inside">
68 106 <?php
69 107
70 - $success_message = NULL;
71 - if(isset($_GET['custom_message']))
72 - $success_message = esc_html(urldecode($_GET['custom_message']));
108 + $success_message = NULL;
109 + if (isset($_GET['custom_message']))
110 + $success_message = esc_html(urldecode($_GET['custom_message']));
73 111
74 - $form->messages('class="alert alert-danger"', $success_message);
112 + if (function_exists('run_wdk_bookings')) {
113 + /* if booking addon exists, show custom message with link to edit calendar */
114 + $success_message .= esc_html__('Successfully saved', 'wpdirectorykit') . '. <a target="_blank" href="' . esc_url(admin_url('admin.php?page=wdk-bookings-calendar&function=edit&id=' . $calendar_id . '&post_id=' . wmvc_show_data('ID', $db_data))) . '">' . esc_html__('To define calendar availability dates please click here', 'wpdirectorykit') . '</a>';
115 + }
116 + $form->messages('class="alert alert-danger"', $success_message);
75 117 ?>
118 +
76 119 <div class="wdk-side-content">
77 120 <div class="wdk-col main">
78 121 <table class="form-table" role="presentation">
79 122 <tbody>
80 - <tr>
81 - <th scope="row"><label for="post_title"><?php echo __('Title', 'wpdirectorykit'); ?>*</label></th>
82 - <td><input name="post_title" type="text" id="post_title" value="<?php echo wmvc_show_data('post_title', $db_data, ''); ?>" placeholder="<?php echo esc_html__('Title', 'wpdirectorykit');?>" class="regular-text"></td>
83 - </tr>
84 - <?php if(get_option('wdk_is_address_enabled', FALSE)): ?>
85 - <tr>
86 - <th scope="row"><label for="input_address"><?php echo __('Address', 'wpdirectorykit'); ?></label></th>
123 + <tr class="<?php if (method_exists($form, 'hasError') && $form->hasError('post_title')): ?> field-error <?php endif; ?>">
124 + <th scope="row"><label for="post_title"><?php echo esc_html__('Title', 'wpdirectorykit'); ?>*</label></th>
87 125 <td>
88 - <input name="address" type="text" id="input_address" value="<?php echo wmvc_show_data('address', $db_data, ''); ?>" placeholder="<?php echo esc_html__('Address', 'wpdirectorykit');?>" class="regular-text">
89 - <p class="description" id="input_address-description"><?php echo __('After you enter address system will try to autodetect and pin location on map, then you can drag and drop pin on map to fine tune location','wpdirectorykit'); ?></p>
126 + <input name="post_title" type="text" id="post_title" value="<?php echo esc_attr(wmvc_show_data('post_title', $db_data, '')); ?>" placeholder="<?php echo esc_attr__('Title', 'wpdirectorykit'); ?>" class="regular-text">
127 + <?php if (method_exists($form, 'hasError') && $form->getError('post_title')): ?>
128 + <p class="wdk-hint wdk-error">
129 + <?php echo wp_kses_post($form->getError('post_title')); ?>
130 + </p>
131 + <?php endif; ?>
90 132 </td>
91 133 </tr>
134 + <?php if (get_option('wdk_is_address_enabled', FALSE)): ?>
135 + <tr>
136 + <th scope="row"><label for="input_address"><?php echo esc_html__('Address', 'wpdirectorykit'); ?></label></th>
137 + <td>
138 + <input name="address" type="text" id="input_address" value="<?php echo esc_attr(wmvc_show_data('address', $db_data, '')); ?>" placeholder="<?php echo esc_attr__('Address', 'wpdirectorykit'); ?>" class="regular-text">
139 + <p class="description" id="input_address-description"><?php echo esc_html__('After you enter address system will try to autodetect and pin location on map, then you can drag and drop pin on map to fine tune location', 'wpdirectorykit'); ?></p>
140 + </td>
141 + </tr>
92 142 <?php endif; ?>
93 143
94 - <?php if(get_option('wdk_sub_listings_enable')): ?>
144 + <?php if (get_option('wdk_sub_listings_enable')): ?>
95 145
96 - <?php if(!empty(wmvc_show_data('listing_parent_post_id', $db_data)) || (isset($_GET['parent_post_id']) && !empty($_GET['parent_post_id']))):?>
97 - <tr class="<?php echo (defined( 'WP_DEBUG' ) && WP_DEBUG) ? '': 'hidden';?>">
98 - <th scope="row"><label for="listing_parent_post_id"><?php echo __('Parent ID', 'wpdirectorykit'); ?>*</label></th>
146 + <?php if (!empty(wmvc_show_data('listing_parent_post_id', $db_data)) || (isset($_GET['parent_post_id']) && !empty($_GET['parent_post_id']))): ?>
147 + <tr class="<?php echo (defined('WP_DEBUG') && WP_DEBUG) ? '' : 'hidden'; ?>">
148 + <th scope="row"><label for="listing_parent_post_id"><?php echo esc_html__('Parent ID', 'wpdirectorykit'); ?>*</label></th>
99 149 <td>
100 - <?php if(!empty(wmvc_show_data('listing_parent_post_id', $db_data))):?>
101 - <input readonly name="listing_parent_post_id" type="text" id="listing_parent_post_id" value="<?php echo wmvc_show_data('listing_parent_post_id', $db_data, ''); ?>" placeholder="<?php echo esc_html__('listing_parent_post_id', 'wpdirectorykit');?>" class="regular-text">
102 - <?php elseif(isset($_GET['parent_post_id']) && !empty($_GET['parent_post_id'])):?>
103 - <input readonly name="listing_parent_post_id" type="text" id="listing_parent_post_id" value="<?php echo esc_attr(intval($_GET['parent_post_id'])); ?>" placeholder="<?php echo esc_html__('listing_parent_post_id', 'wpdirectorykit');?>" class="regular-text">
104 - <?php endif;?>
150 + <?php if (!empty(wmvc_show_data('listing_parent_post_id', $db_data))): ?>
151 + <input readonly name="listing_parent_post_id" type="text" id="listing_parent_post_id" value="<?php echo esc_attr(wmvc_show_data('listing_parent_post_id', $db_data, '')); ?>" placeholder="<?php echo esc_attr__('listing_parent_post_id', 'wpdirectorykit'); ?>" class="regular-text">
152 + <?php elseif (isset($_GET['parent_post_id']) && !empty($_GET['parent_post_id'])): ?>
153 + <input readonly name="listing_parent_post_id" type="text" id="listing_parent_post_id" value="<?php echo esc_attr(intval($_GET['parent_post_id'])); ?>" placeholder="<?php echo esc_attr__('listing_parent_post_id', 'wpdirectorykit'); ?>" class="regular-text">
154 + <?php endif; ?>
105 155 </td>
106 156 </tr>
107 - <?php else:?>
108 - <?php if(!empty(wmvc_show_data('ID', $db_data)) && empty(wmvc_show_data('parent_post_id', $db_data))):?>
109 - <tr>
110 - <th scope="row"><label for="listing_related_ids"><?php echo __('Related', 'wpdirectorykit'); ?></label></th>
111 - <td>
112 - <div class="wdk-listing-childs-wrap">
113 -
114 - <div class="wdk-listing-childs-drop">
115 - <?php $related_ids = wmvc_show_data('listing_related_ids', $db_data, ''); ?>
116 - <?php if(!empty(wmvc_show_data('listing_related_ids', $db_data, ''))):?>
117 - <?php foreach (explode(',',wmvc_show_data('listing_related_ids', $db_data, '')) as $key => $child_idlisting):?>
118 -
119 - <?php
120 - if(empty(wdk_field_value('post_id', $child_idlisting))) {
121 - $related_ids = trim(str_replace(','.$child_idlisting.'','', ','.$related_ids.','),',');
122 - continue;
123 - }
157 + <?php else: ?>
158 + <?php if (!empty(wmvc_show_data('ID', $db_data)) && empty(wmvc_show_data('parent_post_id', $db_data))): ?>
159 + <tr>
160 + <th scope="row"><label for="listing_related_ids"><?php echo esc_html__('Related', 'wpdirectorykit'); ?></label></th>
161 + <td>
162 + <div class="wdk-listing-childs-wrap">
163 +
164 + <div class="wdk-listing-childs-drop">
165 + <?php $related_ids = wmvc_show_data('listing_related_ids', $db_data, ''); ?>
166 + <?php if (!empty(wmvc_show_data('listing_related_ids', $db_data, ''))): ?>
167 + <?php foreach (explode(',', wmvc_show_data('listing_related_ids', $db_data, '')) as $key => $child_idlisting): ?>
168 +
169 + <?php
170 + if (empty(wdk_field_value('post_id', $child_idlisting))) {
171 + $related_ids = trim(str_replace(',' . $child_idlisting . '', '', ',' . $related_ids . ','), ',');
172 + continue;
173 + }
124 174 ?>
125 175
126 - <div class="drop-listing-item" data-idlisting="<?php echo esc_attr($child_idlisting);?>">
127 - <h3 class="handle">
128 - <a target="_blank" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id='.$child_idlisting));?>" class="title"><?php echo esc_html('#'.$child_idlisting.', '.wdk_field_value('post_title', $child_idlisting));?></a>
129 - <a target="_blank" class="btn" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id='.$child_idlisting));?>" target="_blank" title="Edit"><span class="dashicons dashicons-edit"></span></a>
176 + <div class="drop-listing-item" data-idlisting="<?php echo esc_attr($child_idlisting); ?>">
177 + <h3 class="handle">
178 + <a target="_blank" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id=' . $child_idlisting)); ?>" class="title"><?php echo esc_html('#' . $child_idlisting . ', ' . wdk_field_value('post_title', $child_idlisting)); ?></a>
179 + <a target="_blank" class="btn" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id=' . $child_idlisting)); ?>" target="_blank" title="Edit"><span class="dashicons dashicons-edit"></span></a>
130 180 <a class="question_sure btn remove" href="#" title="Remove"><span class="dashicons dashicons-no"></span></a>
131 181 </h3>
132 182 </div>
133 - <?php endforeach;?>
134 - <?php endif;?>
183 + <?php endforeach; ?>
184 + <?php endif; ?>
185 + </div>
186 + <input readonly name="listing_related_ids" type="hidden" id="listing_related_ids" value="<?php echo esc_attr($related_ids); ?>" class="regular-text">
187 +
188 + <div class="wdk-field-edit">
189 + <div class="wdk-field-container" style="padding: 0;">
190 + <?php
191 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
192 + echo wdk_treefield_option('new_listing_id', 'listing_m', NULL, 'post_title', '', __('Not Selected', 'wpdirectorykit'), '', FALSE, 'only_nochilds'); ?>
193 + <a class="button button-primary add_new_listing" style="margin-left: 5px" href="#"><?php echo esc_html__('Add', 'wpdirectorykit'); ?></a>
194 + </div>
195 + </div>
196 + <a target="_blank" class="button button-secondary" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&parent_post_id=' . wmvc_show_data('ID', $db_data))); ?>"><?php echo esc_html__('Add New Related Listing', 'wpdirectorykit'); ?></a>
135 197 </div>
136 - <input readonly name="listing_related_ids" type="hidden" id="listing_related_ids" value="<?php echo esc_attr($related_ids); ?>" class="regular-text">
137 -
138 - <div class="wdk-field-edit">
139 - <div class="wdk-field-container" style="padding: 0;">
140 - <?php echo wdk_treefield_option('new_listing_id', 'listing_m', NULL, 'post_title', '', __('Not Selected', 'wpdirectorykit'),'',FALSE,'listing_parent_post_id IS NOT NULL');?>
141 - <a class="button button-primary add_new_listing" style="margin-left: 5px" href="#"><?php echo __('Add', 'wpdirectorykit'); ?></a>
142 - </div>
198 + </td>
199 + </tr>
200 + <?php else: ?>
201 + <tr>
202 + <th scope="row"><label for="listing_related_ids"><?php echo esc_html__('Related', 'wpdirectorykit'); ?></label></th>
203 + <td>
204 + <div class="wdk-listing-childs-wrap">
205 + <p class="alert alert-info"><?php echo esc_html__('Feature will be available after listing is saved', 'wpdirectorykit'); ?></p>
143 206 </div>
144 - <a target="_blank" class="button button-secondary" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&parent_post_id='.wmvc_show_data('ID', $db_data)));?>"><?php echo __('Add New Related Listing', 'wpdirectorykit'); ?></a>
145 - </div>
146 - </td>
147 - </tr>
148 - <?php endif;?>
207 + </td>
208 + </tr>
209 + <?php endif; ?>
149 210
150 - <?php endif;?>
211 + <?php endif; ?>
151 212
152 - <?php endif;?>
213 + <?php endif; ?>
153 214
154 - <?php if(get_option('wdk_is_category_enabled', FALSE)): ?>
155 - <?php if(wdk_get_option('wdk_multi_categories_edit_field_type') == 'wdk_treefield_dropdown'):?>
215 + <?php if (get_option('wdk_is_category_enabled', FALSE)): ?>
216 + <?php if (wdk_get_option('wdk_multi_categories_edit_field_type') == 'wdk_treefield_dropdown'): ?>
156 217 <tr>
157 - <th scope="row"><label for="category_id"><?php echo __('Category', 'wpdirectorykit'); ?><?php if(wdk_get_option('wdk_listing_category_required')):?>*<?php endif;?></label></th>
218 + <th scope="row"><label for="category_id"><?php echo esc_html__('Category', 'wpdirectorykit'); ?><?php if (wdk_get_option('wdk_listing_category_required')): ?>*<?php endif; ?></label></th>
158 219 <td class="wdk_multi_treefield_dropdown_container">
159 220 <?php
160 221 global $Winter_MVC_WDK;
161 222 $Winter_MVC_WDK->load_helper('listing');
@@ -161,16 +222,16 @@
161 222 $Winter_MVC_WDK->load_helper('listing');
162 223 $Winter_MVC_WDK->model('category_m');
163 224 $field_value = wmvc_show_data('category_id', $db_data, '');
164 225 $field_key = 'category_id';
165 -
226 +
166 227 $categories = array();
167 - if(!empty($field_value)) {
228 + if (!empty($field_value)) {
168 229 $categories[] = $field_value;
169 - $category = $Winter_MVC_WDK->category_m->get($field_value, TRUE);
230 + $category = $Winter_MVC_WDK->category_m->get($field_value, TRUE);
170 231
171 - while(!empty($category->parent_id)) {
172 - $category = $Winter_MVC_WDK->category_m->get($category->parent_id, TRUE);
232 + while (!empty($category->parent_id)) {
233 + $category = $Winter_MVC_WDK->category_m->get($category->parent_id, TRUE);
173 234 $categories[] = $category->idcategory;
174 235 }
175 236 krsort($categories);
176 237 } else {
@@ -178,20 +239,20 @@
178 239 }
179 240
180 241 wp_enqueue_style('wdk-treefield-dropdown');
181 242 wp_enqueue_script('wdk-treefield-dropdown');
182 - wp_enqueue_style( 'dashicons' );
243 + wp_enqueue_style('dashicons');
183 244
184 245
185 246 $level_max = $Winter_MVC_WDK->category_m->get_max_level();
186 247
187 248 $placeholder = [
188 - 0 => esc_html__('Select Categories','wpdirectorykit'),
189 - 1 => esc_html__('Select Sub Categories','wpdirectorykit'),
190 - 2 => esc_html__('Select Sub Categories','wpdirectorykit'),
191 - 3 => esc_html__('Select Sub Categories','wpdirectorykit'),
192 - 4 => esc_html__('Select Sub Categories','wpdirectorykit'),
193 - 5 => esc_html__('Select Sub Categories','wpdirectorykit'),
249 + 0 => esc_html__('Select Categories', 'wpdirectorykit'),
250 + 1 => esc_html__('Select Sub Categories', 'wpdirectorykit'),
251 + 2 => esc_html__('Select Sub Categories', 'wpdirectorykit'),
252 + 3 => esc_html__('Select Sub Categories', 'wpdirectorykit'),
253 + 4 => esc_html__('Select Sub Categories', 'wpdirectorykit'),
254 + 5 => esc_html__('Select Sub Categories', 'wpdirectorykit'),
194 255 ];
195 256 ?>
196 257
197 258 <input name="<?php echo esc_attr($field_key); ?>" type="hidden" value="<?php echo esc_attr($field_value); ?>">
@@ -199,27 +260,29 @@
199 260 $level = 0;
200 261 $current = NULL;
201 262
202 263 foreach ($categories as $category) {
203 - $current = $Winter_MVC_WDK->category_m->get($category, TRUE);
264 + $current = $Winter_MVC_WDK->category_m->get($category, TRUE);
265 + if (!$current)
266 + break;
267 + $list = $Winter_MVC_WDK->category_m->get_by(array('parent_id = ' . $current->parent_id => NULL));
204 268
205 - $list = $Winter_MVC_WDK->category_m->get_by(array('parent_id = '.$current->parent_id => NULL));
206 -
207 - if(isset($placeholder[$level])) {
208 - $values_list = array(''=> $placeholder[$level]);
209 -
210 - } else {
211 - $values_list = array(''=> esc_html__('Select Sub Categories','wpdirectorykit'));
269 + if (isset($placeholder[$level])) {
270 + $values_list = array('' => $placeholder[$level]);
271 + } else {
272 + $values_list = array('' => esc_html__('Select Sub Categories', 'wpdirectorykit'));
212 273 }
213 274
214 275 foreach ($list as $list_value) {
215 - $values_list[$list_value->idcategory] = $list_value->category_title;
276 + $values_list[$list_value->idcategory] = $list_value->category_title;
216 277 }
217 - ?>
278 + ?>
218 279
219 - <div data-level="<?php echo esc_attr($level);?>" data-field="<?php echo esc_attr($field_key); ?>" class="wdk_multi_treefield_dropdown wdk_treefield_dropdown">
280 + <div data-level="<?php echo esc_attr($level); ?>" data-field="<?php echo esc_attr($field_key); ?>" class="wdk_multi_treefield_dropdown wdk_treefield_dropdown">
220 281 <div class="wdk-field-group">
221 - <?php echo wmvc_select_option('category_'.$level, $values_list, $category, 'class="wdk-control"');?>
282 + <?php
283 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
284 + echo wmvc_select_option('category_' . $level, $values_list, $category, 'class="wdk-control"'); ?>
222 285 </div>
223 286 </div>
224 287
225 288 <?php
@@ -224,34 +287,36 @@
224 287
225 288 <?php
226 289 $level++;
227 290 }
228 -
229 - if($level<$level_max ) {
230 - for (; $level<$level_max;) {
231 -
232 - if(isset($placeholder[$level])) {
233 - $values_list = array(''=> $placeholder[$level]);
291 +
292 + if ($level < $level_max) {
293 + for (; $level < $level_max;) {
294 +
295 + if (isset($placeholder[$level])) {
296 + $values_list = array('' => $placeholder[$level]);
234 297 } else {
235 - $values_list = array(''=> esc_html__('Select Sub Categories','wpdirectorykit'));
298 + $values_list = array('' => esc_html__('Select Sub Categories', 'wpdirectorykit'));
236 299 }
237 300
238 - if($category) {
239 - $list = $Winter_MVC_WDK->category_m->get_by(array('parent_id = '.$category => NULL));
301 + if ($category) {
302 + $list = $Winter_MVC_WDK->category_m->get_by(array('parent_id = ' . $category => NULL));
240 303 foreach ($list as $list_value) {
241 - $values_list[$list_value->idcategory] = $list_value->category_title;
304 + $values_list[$list_value->idcategory] = $list_value->category_title;
242 305 }
243 306 $category = NULL;
244 307 }
245 308
246 - ?>
247 - <div data-level="<?php echo esc_attr($level);?>" data-field="<?php echo esc_attr($field_key); ?>" class="wdk_multi_treefield_dropdown wdk_treefield_dropdown">
309 + ?>
310 + <div data-level="<?php echo esc_attr($level); ?>" data-field="<?php echo esc_attr($field_key); ?>" class="wdk_multi_treefield_dropdown wdk_treefield_dropdown">
248 311 <div class="wdk-field-group">
249 - <?php echo wmvc_select_option('category_'.$level, $values_list, NULL, 'class="wdk-control"');?>
312 + <?php
313 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
314 + echo wmvc_select_option('category_' . $level, $values_list, NULL, 'class="wdk-control"'); ?>
250 315 </div>
251 316 </div>
252 317
253 - <?php
318 + <?php
254 319 $level++;
255 320 }
256 321 }
257 322 ?>
@@ -258,31 +323,37 @@
258 323 </td>
259 324 </tr>
260 325 <?php else: ?>
261 326 <tr>
262 - <th scope="row"><label for="category_id"><?php echo __('Category', 'wpdirectorykit'); ?><?php if(wdk_get_option('wdk_listing_category_required')):?>*<?php endif;?></label></th>
263 - <td >
264 - <?php
265 - echo wmvc_select_option('category_id', $categories, wmvc_show_data('category_id', $db_data, ''), "id='category_id'", __('Not Selected', 'wpdirectorykit'));
266 - ?>
327 + <th scope="row"><label for="category_id"><?php echo esc_html__('Category', 'wpdirectorykit'); ?><?php if (wdk_get_option('wdk_listing_category_required')): ?>*<?php endif; ?></label></th>
328 + <td>
329 + <div class="wdk-field-edit edittable">
330 + <div class="wdk-field-container">
331 + <?php
332 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
333 + echo wdk_treefield_option('category_id', 'category_m', wmvc_show_data('category_id', $db_data, ''), 'category_title', '', __('Not Selected', 'wpdirectorykit')); ?>
334 + </div>
335 + </div>
267 336 </td>
268 337 </tr>
269 338 <?php endif; ?>
270 339 <?php endif; ?>
271 -
272 - <?php if(get_option('wdk_is_category_enabled', FALSE) && get_option('wdk_multi_categories_other_enable', FALSE)): ?>
273 - <tr>
274 - <th scope="row"><label for="listing_categories"><?php echo __('More Categories', 'wpdirectorykit'); ?></label></th>
275 - <td class="">
276 - <?php echo wdk_treefield_select_ajax ('listing_sub_categories[]', 'category_m', wmvc_show_data('listing_sub_categories', $db_data, '', TRUE, TRUE), 'category_title', 'idcategory', '', __('All Categories', 'wpdirectorykit'), '', 'data-limit="10"');?>
277 - </td>
278 - </tr>
340 +
341 + <?php if (get_option('wdk_is_category_enabled', FALSE) && get_option('wdk_multi_categories_other_enable', FALSE)): ?>
342 + <tr>
343 + <th scope="row"><label for="listing_categories"><?php echo esc_html__('More Categories', 'wpdirectorykit'); ?></label></th>
344 + <td class="">
345 + <?php
346 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
347 + echo wdk_treefield_select_ajax('listing_sub_categories[]', 'category_m', wmvc_show_data('listing_sub_categories', $db_data, '', TRUE, TRUE), 'category_title', 'idcategory', '', __('All Categories', 'wpdirectorykit'), '', 'data-limit="10"'); ?>
348 + </td>
349 + </tr>
279 350 <?php endif; ?>
280 351
281 - <?php if(get_option('wdk_is_location_enabled', FALSE)): ?>
282 - <?php if(wdk_get_option('wdk_multi_categories_edit_field_type') == 'wdk_treefield_dropdown'):?>
352 + <?php if (get_option('wdk_is_location_enabled', FALSE)): ?>
353 + <?php if (wdk_get_option('wdk_multi_categories_edit_field_type') == 'wdk_treefield_dropdown'): ?>
283 354 <tr>
284 - <th scope="row"><label for="location_id"><?php echo __('Location', 'wpdirectorykit'); ?><?php if(wdk_get_option('wdk_listing_category_required')):?>*<?php endif;?></label></th>
355 + <th scope="row"><label for="location_id"><?php echo esc_html__('Location', 'wpdirectorykit'); ?><?php if (wdk_get_option('wdk_listing_category_required')): ?>*<?php endif; ?></label></th>
285 356 <td class="wdk_multi_treefield_dropdown_container">
286 357 <?php
287 358 global $Winter_MVC_WDK;
288 359 $Winter_MVC_WDK->load_helper('listing');
@@ -290,14 +361,14 @@
290 361 $field_value = wmvc_show_data('location_id', $db_data, '');
291 362 $field_key = 'location_id';
292 363
293 364 $locations = array();
294 - if(!empty($field_value)) {
365 + if (!empty($field_value)) {
295 366 $locations[] = $field_value;
296 - $location = $Winter_MVC_WDK->location_m->get($field_value, TRUE);
297 -
298 - while(!empty($location->parent_id)) {
299 - $location = $Winter_MVC_WDK->location_m->get($location->parent_id, TRUE);
367 + $location = $Winter_MVC_WDK->location_m->get($field_value, TRUE);
368 +
369 + while (!empty($location->parent_id)) {
370 + $location = $Winter_MVC_WDK->location_m->get($location->parent_id, TRUE);
300 371 $locations[] = $location->idlocation;
301 372 }
302 373 krsort($locations);
303 374 } else {
@@ -302,289 +373,377 @@
302 373 krsort($locations);
303 374 } else {
304 375 $locations[] = 0;
305 376 }
306 -
377 +
307 378 wp_enqueue_style('wdk-treefield-dropdown');
308 379 wp_enqueue_script('wdk-treefield-dropdown');
309 - wp_enqueue_style( 'dashicons' );
310 -
380 + wp_enqueue_style('dashicons');
381 +
311 382 $level_max = $Winter_MVC_WDK->location_m->get_max_level();
312 -
383 +
313 384 $placeholder = [
314 - 0 => esc_html__('Select Country','wpdirectorykit'),
315 - 1 => esc_html__('Select City','wpdirectorykit'),
316 - 2 => esc_html__('Select Neighborhood','wpdirectorykit'),
317 - 3 => esc_html__('Select Sub Area','wpdirectorykit'),
318 - 4 => esc_html__('Select Sub Area','wpdirectorykit'),
319 - 5 => esc_html__('Select Sub Area','wpdirectorykit'),
385 + 0 => esc_html__('Select Country', 'wpdirectorykit'),
386 + 1 => esc_html__('Select City', 'wpdirectorykit'),
387 + 2 => esc_html__('Select Neighborhood', 'wpdirectorykit'),
388 + 3 => esc_html__('Select Sub Area', 'wpdirectorykit'),
389 + 4 => esc_html__('Select Sub Area', 'wpdirectorykit'),
390 + 5 => esc_html__('Select Sub Area', 'wpdirectorykit'),
320 391 ];
321 392 ?>
322 393
323 - <input name="<?php echo esc_attr($field_key); ?>" type="hidden" value="<?php echo esc_attr($field_value); ?> wdk_field_id_location">
394 + <input name="<?php echo esc_attr($field_key); ?>" type="hidden" value="<?php echo esc_attr($field_value); ?>">
324 395 <?php
325 - $level = 0;
326 - $current = NULL;
327 -
328 - foreach ($locations as $location) {
329 - $current = $Winter_MVC_WDK->location_m->get($location, TRUE);
396 + $level = 0;
397 + $current = NULL;
330 398
331 - $list = $Winter_MVC_WDK->location_m->get_by(array('parent_id = '.$current->parent_id => NULL));
399 + foreach ($locations as $location) {
400 + $current = $Winter_MVC_WDK->location_m->get($location, TRUE);
401 + if (!$current)
402 + break;
403 + $list = $Winter_MVC_WDK->location_m->get_by(array('parent_id = ' . $current->parent_id => NULL));
332 404
333 - if(isset($placeholder[$level])) {
334 - $values_list = array(''=> $placeholder[$level]);
335 - } else {
336 - $values_list = array(''=> esc_html__('Select Sub Area','wpdirectorykit'));
337 - }
405 + if (isset($placeholder[$level])) {
406 + $values_list = array('' => $placeholder[$level]);
407 + } else {
408 + $values_list = array('' => esc_html__('Select Sub Area', 'wpdirectorykit'));
409 + }
338 410
339 - foreach ($list as $list_value) {
340 - $values_list[$list_value->idlocation] = $list_value->location_title;
341 - }
342 - ?>
411 + foreach ($list as $list_value) {
412 + $values_list[$list_value->idlocation] = $list_value->location_title;
413 + }
414 + ?>
343 415
344 - <div data-level="<?php echo esc_attr($level);?>" data-field="<?php echo esc_attr($field_key); ?>" class="wdk_multi_treefield_dropdown wdk_treefield_dropdown">
345 - <div class="wdk-field-group">
346 - <?php echo wmvc_select_option('location_'.$level, $values_list, $location, 'class="wdk-control"');?>
347 - </div>
416 + <div data-level="<?php echo esc_attr($level); ?>" data-field="<?php echo esc_attr($field_key); ?>" class="wdk_multi_treefield_dropdown wdk_treefield_dropdown">
417 + <div class="wdk-field-group">
418 + <?php
419 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
420 + echo wmvc_select_option('location_' . $level, $values_list, $location, 'class="wdk-control"'); ?>
348 421 </div>
422 + </div>
349 423
350 - <?php
351 - $level++;
352 - }
353 -
354 - if($level<$level_max ) {
355 - for (; $level<$level_max;) {
356 -
357 - if(isset($placeholder[$level])) {
358 - $values_list = array(''=> $placeholder[$level]);
424 + <?php
425 + $level++;
426 + }
427 +
428 + if ($level < $level_max) {
429 + for (; $level < $level_max;) {
430 +
431 + if (isset($placeholder[$level])) {
432 + $values_list = array('' => $placeholder[$level]);
359 433 } else {
360 - $values_list = array(''=> esc_html__('Select Sub Area','wpdirectorykit'));
434 + $values_list = array('' => esc_html__('Select Sub Area', 'wpdirectorykit'));
361 435 }
362 436
363 -
364 - if(isset($placeholder[$level])) {
365 - $values_list = array(''=> $placeholder[$level]);
437 +
438 + if (isset($placeholder[$level])) {
439 + $values_list = array('' => $placeholder[$level]);
366 440 } else {
367 - $values_list = array(''=> esc_html__('Select Sub Area','wpdirectorykit'));
441 + $values_list = array('' => esc_html__('Select Sub Area', 'wpdirectorykit'));
368 442 }
369 -
370 - if($location) {
371 - $list = $Winter_MVC_WDK->location_m->get_by(array('parent_id = '.$location => NULL));
443 +
444 + if ($location) {
445 + $list = $Winter_MVC_WDK->location_m->get_by(array('parent_id = ' . $location => NULL));
372 446 foreach ($list as $list_value) {
373 - $values_list[$list_value->idlocation] = $list_value->location_title;
447 + $values_list[$list_value->idlocation] = $list_value->location_title;
374 448 }
375 449 $location = NULL;
376 450 }
377 -
378 - ?>
379 - <div data-level="<?php echo esc_attr($level);?>" data-field="<?php echo esc_attr($field_key); ?>" class="wdk_multi_treefield_dropdown wdk_treefield_dropdown">
380 - <div class="wdk-field-group">
381 - <?php echo wmvc_select_option('location_'.$level, $values_list, NULL, 'class="wdk-control"');?>
382 - </div>
451 +
452 + ?>
453 + <div data-level="<?php echo esc_attr($level); ?>" data-field="<?php echo esc_attr($field_key); ?>" class="wdk_multi_treefield_dropdown wdk_treefield_dropdown">
454 + <div class="wdk-field-group">
455 + <?php
456 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
457 + echo wmvc_select_option('location_' . $level, $values_list, NULL, 'class="wdk-control"'); ?>
383 458 </div>
384 -
385 - <?php
386 - $level++;
387 - }
459 + </div>
460 +
461 + <?php
462 + $level++;
388 463 }
464 + }
389 465 ?>
390 466 </td>
391 467 </tr>
392 - <?php else: ?>
393 - <tr>
394 - <th scope="row"><label for="location_id"><?php echo __('Location', 'wpdirectorykit'); ?><?php if(wdk_get_option('wdk_listing_category_required')):?>*<?php endif;?></label></th>
395 - <td >
396 - <?php
397 - echo wmvc_select_option('location_id', $locations, wmvc_show_data('location_id', $db_data, ''), "id='location_id'", __('Not Selected', 'wpdirectorykit'));
398 - ?>
399 - </td>
400 - </tr>
401 - <?php endif; ?>
468 + <?php else: ?>
469 + <tr>
470 + <th scope="row"><label for="location_id"><?php echo esc_html__('Location', 'wpdirectorykit'); ?><?php if (wdk_get_option('wdk_listing_category_required')): ?>*<?php endif; ?></label></th>
471 + <td>
472 + <div class="wdk-field-edit edittable">
473 + <div class="wdk-field-container">
474 + <?php
475 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
476 + echo wdk_treefield_option('location_id', 'location_m', wmvc_show_data('location_id', $db_data, ''), 'location_title', '', __('Not Selected', 'wpdirectorykit')); ?>
477 + </div>
478 + </div>
479 + </td>
480 + </tr>
481 + <?php endif; ?>
402 482 <?php endif; ?>
403 483
404 - <?php if(get_option('wdk_is_location_enabled', FALSE) && get_option('wdk_multi_locations_other_enable', FALSE)): ?>
405 - <tr>
406 - <th scope="row"><label for="listing_agents"><?php echo __('More Locations', 'wpdirectorykit'); ?></label></th>
407 - <td class="">
408 - <?php echo wdk_treefield_select_ajax ('listing_sub_locations[]', 'location_m', wmvc_show_data('listing_sub_locations', $db_data, '', TRUE, TRUE), 'location_title', 'idlocation', '', __('All Locations', 'wpdirectorykit'), '', 'data-limit="10"');?>
409 - </td>
410 - </tr>
484 + <?php if (get_option('wdk_is_location_enabled', FALSE) && get_option('wdk_multi_locations_other_enable', FALSE)): ?>
485 + <tr>
486 + <th scope="row"><label for="listing_agents"><?php echo esc_html__('More Locations', 'wpdirectorykit'); ?></label></th>
487 + <td class="">
488 + <?php
489 +
490 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
491 + echo wdk_treefield_select_ajax('listing_sub_locations[]', 'location_m', wmvc_show_data('listing_sub_locations', $db_data, '', TRUE, TRUE), 'location_title', 'idlocation', '', __('All Locations', 'wpdirectorykit'), '', 'data-limit="10"'); ?>
492 + </td>
493 + </tr>
411 494 <?php endif; ?>
412 - <tr>
413 - <th scope="row"><label for="user_id_editor"><?php echo __('Agent Editor', 'wpdirectorykit'); ?></label></th>
414 - <td>
415 - <div class="wdk-field-edit edittable">
416 - <div class="wdk-field-container">
417 - <?php echo wdk_treefield_option('user_id_editor', 'user_m', wmvc_show_data('user_id_editor', $db_data, ''), 'display_name', '', __('Not Selected', 'wpdirectorykit'));?>
418 - </div>
419 - </div>
420 - </td>
421 - </tr>
422 - <?php if(function_exists('run_wdk_membership')): ?>
423 - <tr>
424 - <th scope="row"><label for="listing_agents"><?php echo __('Alternative Agents', 'wpdirectorykit'); ?></label></th>
425 - <td class="">
426 - <?php echo wdk_user_select_ajax ('listing_agents[]', array_keys( wmvc_show_data('listing_agents', $db_data, '', TRUE, TRUE)), __('Add Agents', 'wpdirectorykit'));?>
427 - </td>
428 - <?php if(false):?>
429 - <td class="agents_group">
430 - <?php echo wdk_select_multi_option('listing_agents[]', wmvc_show_data('listing_agents', $db_data, '', TRUE, TRUE), array_keys( wmvc_show_data('listing_agents', $db_data, '', TRUE, TRUE)), "id='listing_agents'");?>
431 - <div class="agent_add form-inline">
432 - <div class="wdk-field-edit">
495 + <?php if (wdk_get_option('wdk_is_user_editor_enabled', FALSE)): ?>
496 + <tr>
497 + <th scope="row"><label for="user_id_editor"><?php echo esc_html__('Agent Editor', 'wpdirectorykit'); ?></label></th>
498 + <td>
499 + <div class="wdk-field-edit edittable">
433 500 <div class="wdk-field-container">
434 - <?php echo wdk_treefield_option('agent_id', 'user_m', '', 'display_name', '', __('Not Selected', 'wpdirectorykit'));?>
501 + <?php
502 +
503 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
504 + echo wdk_treefield_option('user_id_editor', 'user_m', wmvc_show_data('user_id_editor', $db_data, ''), 'display_name', '', __('Not Selected', 'wpdirectorykit')); ?>
435 505 </div>
436 506 </div>
437 - <button type="button" class="button button-primary add_button"><?php echo __('Add agent', 'wpdirectorykit'); ?></button>
438 - <button type="button" title="<?php echo __('Remove latest on list', 'wpdirectorykit'); ?>" class="button button-secondary rem_button"><?php echo __('X', 'wpdirectorykit'); ?></button>
439 - </div>
440 - </td>
507 + </td>
508 + </tr>
509 + <?php endif; ?>
510 + <?php if (wdk_get_option('wdk_is_alt_agent_enabled', FALSE)): ?>
511 + <?php if (function_exists('run_wdk_membership')): ?>
512 + <tr>
513 + <th scope="row"><label for="listing_agents"><?php echo esc_html__('Alternative Agents', 'wpdirectorykit'); ?></label></th>
514 + <td class="">
515 + <?php
516 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
517 + echo wdk_user_select_ajax('listing_agents[]', array_keys(wmvc_show_data('listing_agents', $db_data, '', TRUE, TRUE)), __('Add Agents', 'wpdirectorykit')); ?>
518 + </td>
519 + <?php if (false): ?>
520 + <td class="agents_group">
521 + <?php
522 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
523 + echo wdk_select_multi_option('listing_agents[]', wmvc_show_data('listing_agents', $db_data, '', TRUE, TRUE), array_keys(wmvc_show_data('listing_agents', $db_data, '', TRUE, TRUE)), "id='listing_agents'"); ?>
524 + <div class="agent_add form-inline">
525 + <div class="wdk-field-edit">
526 + <div class="wdk-field-container">
527 + <?php
528 +
529 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
530 + echo wdk_treefield_option('agent_id', 'user_m', '', 'display_name', '', __('Not Selected', 'wpdirectorykit')); ?>
531 + </div>
532 + </div>
533 + <button type="button" class="button button-primary add_button"><?php echo esc_html__('Add agent', 'wpdirectorykit'); ?></button>
534 + <button type="button" title="<?php echo esc_html__('Remove latest on list', 'wpdirectorykit'); ?>" class="button button-secondary rem_button"><?php echo esc_html__('X', 'wpdirectorykit'); ?></button>
535 + </div>
536 + </td>
537 + <?php endif; ?>
538 + </tr>
441 539 <?php endif; ?>
442 - </tr>
443 540 <?php endif; ?>
444 - <?php if(wdk_get_option('wdk_membership_is_enable_subscriptions') && function_exists('run_wdk_membership')):?>
445 - <tr>
446 - <th scope="row"><label for="subscription_id"><?php echo __('Membership Subscription', 'wpdirectorykit'); ?></label></th>
447 - <td>
448 - <?php
449 - echo wmvc_select_option('subscription_id', $subscriptions, wmvc_show_data('subscription_id', $db_data, ''), "id='subscription_id'", __('Not Selected', 'wpdirectorykit'));
450 - ?>
451 - </td>
452 - </tr>
453 - <?php endif;?>
454 541
455 - <?php if(function_exists('run_wdk_payments') && isset($packages)):?>
542 + <?php if (wdk_get_option('wdk_membership_is_enable_subscriptions') && function_exists('run_wdk_membership')): ?>
543 + <tr>
544 + <th scope="row"><label for="subscription_id"><?php echo esc_html__('Membership Subscription', 'wpdirectorykit'); ?></label></th>
545 + <td>
546 + <?php
547 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
548 + echo wmvc_select_option('subscription_id', $subscriptions, wmvc_show_data('subscription_id', $db_data, ''), "id='subscription_id' class='regular-text'", __('Not Selected', 'wpdirectorykit'));
549 + ?>
550 + </td>
551 + </tr>
552 + <?php endif; ?>
553 +
554 + <?php if (function_exists('run_wdk_payments') && isset($packages)): ?>
555 + <tr>
556 + <th scope="row"><label for="packages"><?php echo esc_html__('Package', 'wpdirectorykit'); ?></label></th>
557 + <td>
558 + <?php
559 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
560 + echo wmvc_select_option('package_id', $packages, wmvc_show_data('package_id', $db_data, ''), "id='packages'", __('Not Selected', 'wpdirectorykit'));
561 + ?>
562 + </td>
563 + </tr>
564 + <?php endif; ?>
565 +
566 + <?php if (wdk_get_option('wdk_is_rank_enabled', FALSE)): ?>
567 + <tr>
568 + <th scope="row"><label for="rank"><?php echo esc_html__('Rank', 'wpdirectorykit'); ?></label></th>
569 + <td>
570 + <input <?php if (!wmvc_user_in_role('administrator') && !current_user_can('wdk_listings_manage')): ?> readonly="readonly" <?php endif; ?> name="rank" type="number" id="rank" value="<?php echo esc_attr(wmvc_show_data('rank', $db_data, '')); ?>" placeholder="<?php echo esc_attr__('Rank', 'wpdirectorykit'); ?>" class="regular-text">
571 + <p class="description" id="input_rank-description"><b><?php echo esc_html__('Rank', 'wpdirectorykit'); ?></b> <?php echo esc_html__('is number, higher number means a better position/rank in results.', 'wpdirectorykit'); ?></p>
572 + </td>
573 + </tr>
574 + <?php endif; ?>
575 +
576 + <?php if (wdk_get_option('wdk_is_featured_enabled', FALSE)): ?>
577 + <tr>
578 + <th scope="row"><label for="is_featured"><?php echo esc_html__('Is Featured', 'wpdirectorykit'); ?></label></th>
579 + <td>
580 + <input name="is_featured" type="checkbox" id="is_featured" value="1" <?php echo !empty(wmvc_show_data('is_featured', $db_data, '')) ? 'checked' : ''; ?>><label for="is_featured"><?php echo esc_html__('Make it featured', 'wpdirectorykit'); ?></label>
581 + <p class="description" id="is_featured-description"><?php echo esc_html__('Featured/Highlighted listing in results', 'wpdirectorykit'); ?></p>
582 + </td>
583 + </tr>
584 + <?php endif; ?>
585 +
456 586 <tr>
457 - <th scope="row"><label for="packages"><?php echo __('Package', 'wpdirectorykit'); ?></label></th>
587 + <th scope="row"><label for="is_activated"><?php echo esc_html__('Is Activated', 'wpdirectorykit'); ?></label></th>
458 588 <td>
459 - <?php
460 - echo wmvc_select_option('package_id', $packages, wmvc_show_data('package_id', $db_data, ''), "id='packages'", __('Not Selected', 'wpdirectorykit'));
461 - ?>
589 + <input name="is_activated" type="checkbox" id="is_activated" value="1" <?php echo !empty(wmvc_show_data('is_activated', $db_data, '')) ? 'checked' : ''; ?>><label for="is_activated"><?php echo esc_html__('Make it available for public', 'wpdirectorykit'); ?></label>
590 + <p class="description" id="is_activated-description"><?php echo esc_html__('When enabled, the listing becomes visible on the frontend. The listing owner can activate or deactivate the listing at any time.', 'wpdirectorykit'); ?></p>
462 591 </td>
463 592 </tr>
464 - <?php endif;?>
593 + <?php if (function_exists('run_wdk_membership')): ?>
594 + <tr>
595 + <th scope="row"><label for="is_approved"><?php echo esc_html__('Is Approved', 'wpdirectorykit'); ?></label></th>
596 + <td>
597 + <input name="is_approved" type="checkbox" id="is_approved" value="1" <?php echo !empty(wmvc_show_data('is_approved', $db_data, '')) ? 'checked' : ''; ?>><label for="is_approved"><?php echo esc_html__('Make it approved for public', 'wpdirectorykit'); ?></label>
598 + <p class="description" id="is_approved-description"><?php echo esc_html__('When approved, the listing is eligible to be shown on the frontend, but it must also be activated. Approval can be granted by an admin, and for certain membership packages, listings may be auto-approved if configured.', 'wpdirectorykit'); ?> (<?php echo esc_html__('only admin can approve', 'wpdirectorykit'); ?>)</p>
599 + </td>
600 + </tr>
601 + <?php endif; ?>
465 602 <tr>
466 - <th scope="row"><label for="rank"><?php echo __('Rank', 'wpdirectorykit'); ?></label></th>
603 + <th scope="row"><label for="slug"><?php echo esc_html__('Slug', 'wpdirectorykit'); ?></label></th>
467 604 <td>
468 - <input <?php if(!wmvc_user_in_role('administrator')):?> readonly="readonly" <?php endif;?> name="rank" type="number" id="rank" value="<?php echo wmvc_show_data('rank', $db_data, ''); ?>" placeholder="<?php echo esc_html__('Rank', 'wpdirectorykit');?>" class="regular-text">
605 + <input <?php if (!wmvc_user_in_role('administrator') && !current_user_can('wdk_listings_manage')): ?> readonly="readonly" <?php endif; ?> name="slug" type="text" id="slug" value="<?php echo esc_attr(wmvc_show_data('post_name', $db_data, '')); ?>" placeholder="<?php echo esc_attr__('Slug', 'wpdirectorykit'); ?>" class="regular-text">
469 606 </td>
470 607 </tr>
471 - <tr>
472 - <th scope="row"><label for="is_featured"><?php echo __('Is Featured', 'wpdirectorykit'); ?></label></th>
473 - <td>
474 - <input name="is_featured" type="checkbox" id="is_featured" value="1" <?php echo !empty(wmvc_show_data('is_featured', $db_data, ''))?'checked':''; ?>><label for="is_featured"><?php echo __('Make it featured','wpdirectorykit'); ?></label>
475 - <p class="description" id="is_featured-description"><?php echo __('Featured/Highlighted listing in results','wpdirectorykit'); ?></p>
476 - </td>
477 - </tr>
478 - <tr>
479 - <th scope="row"><label for="is_activated"><?php echo __('Is Activated', 'wpdirectorykit'); ?></label></th>
480 - <td>
481 - <input name="is_activated" type="checkbox" id="is_activated" value="1" <?php echo !empty(wmvc_show_data('is_activated', $db_data, ''))?'checked':''; ?>><label for="is_activated"><?php echo __('Make it available for public','wpdirectorykit'); ?></label>
482 - <p class="description" id="is_activated-description"><?php echo __('When listing is activated will be visible on frontend','wpdirectorykit'); ?></p>
483 - </td>
484 - </tr>
485 - <?php if(function_exists('run_wdk_membership')):?>
486 - <tr>
487 - <th scope="row"><label for="is_approved"><?php echo __('Is Approved', 'wpdirectorykit'); ?></label></th>
488 - <td>
489 - <input name="is_approved" type="checkbox" id="is_approved" value="1" <?php echo !empty(wmvc_show_data('is_approved', $db_data, ''))?'checked':''; ?>><label for="is_approved"><?php echo __('Make it approved for public','wpdirectorykit'); ?></label>
490 - <p class="description" id="is_approved-description"><?php echo __('When listing is approved will be visible on frontend','wpdirectorykit'); ?> (<?php echo __('only admin can approve','wpdirectorykit'); ?>)</p>
491 - </td>
492 - </tr>
493 - <?php endif;?>
494 - <tr>
495 - <th scope="row"><label for="slug"><?php echo __('Slug', 'wpdirectorykit'); ?></label></th>
496 - <td>
497 - <input <?php if(!wmvc_user_in_role('administrator')):?> readonly="readonly" <?php endif;?> name="slug" type="text" id="slug" value="<?php echo wmvc_show_data('post_name', $db_data, ''); ?>" placeholder="<?php echo esc_html__('Slug', 'wpdirectorykit');?>" class="regular-text">
498 - </td>
499 - </tr>
500 608 </tbody>
501 609 </table>
502 610 </div>
503 611 <div class="wdk-col sidebar">
504 - <?php if(get_option('wdk_is_address_enabled', FALSE)): ?>
612 + <?php if (get_option('wdk_is_address_enabled', FALSE)): ?>
505 613 <div class="clearfix">
506 - <a href="#" class="button button-secondary alignright wdk_action_clear_gps_reset_map"><?php echo esc_html__('Clear Gps coordinates', 'wpdirectorykit');?></a>
614 + <a href="#" class="button button-secondary alignright wdk_action_clear_gps_reset_map"><?php echo esc_html__('Clear Gps coordinates', 'wpdirectorykit'); ?></a>
507 615 </div>
508 - <br/>
616 + <br />
509 617 <div id="map" class="listing_edit_map"></div>
510 - <br/>
511 - <p class="alert alert-info"><?php echo esc_html__('Drag and drop pin to desired location','wpdirectorykit');?></p>
618 + <br />
619 + <p class="alert alert-info"><?php echo esc_html__('Drag and drop pin to desired location', 'wpdirectorykit'); ?></p>
512 620 <div class="wdk-field-edit inline">
513 - <label for="listing_gps"><?php echo esc_html__('GPS','wpdirectorykit');?>:</label>
621 + <label for="listing_gps"><?php echo esc_html__('GPS', 'wpdirectorykit'); ?>:</label>
514 622 <div class="wdk-field-container">
515 - <input name="lat" readonly="readonly" type="text" id="input_lat" value="<?php echo wmvc_show_data('lat', $db_data, ''); ?>" class="regular-text" placeholder="<?php echo esc_html__('lat', 'wpdirectorykit');?>">
516 - <input name="lng" readonly="readonly" type="text" id="input_lng" value="<?php echo wmvc_show_data('lng', $db_data, ''); ?>" class="regular-text" placeholder="<?php echo esc_html__('lng', 'wpdirectorykit');?>">
623 + <input name="lat" readonly="readonly" type="text" id="input_lat" value="<?php echo esc_attr(wmvc_show_data('lat', $db_data, '')); ?>" class="regular-text" placeholder="<?php echo esc_attr__('lat', 'wpdirectorykit'); ?>">
624 + <input name="lng" readonly="readonly" type="text" id="input_lng" value="<?php echo esc_attr(wmvc_show_data('lng', $db_data, '')); ?>" class="regular-text" placeholder="<?php echo esc_attr__('lng', 'wpdirectorykit'); ?>">
517 625 </div>
518 626 </div>
519 - <?php endif;?>
627 + <?php endif; ?>
628 + <?php if (!empty($edit_log)): ?>
629 + <div class="wdk_editlog">
630 + <table class="table table-bordered">
631 + <caption><?php echo esc_html__('Edit History', 'wpdirectorykit'); ?></caption>
632 + <thead>
633 + <tr>
634 + <th><?php echo esc_html__('User', 'wpdirectorykit'); ?></th>
635 + <th><?php echo esc_html__('Date', 'wpdirectorykit'); ?></th>
636 + <th><?php echo esc_html__('IP', 'wpdirectorykit'); ?></th>
637 + </tr>
638 + </thead>
639 + <tbody>
640 + <?php foreach ($edit_log as $log_row): ?>
641 + <tr>
642 + <td><?php echo esc_html($log_row->display_name); ?></td>
643 + <td><?php echo esc_html(wdk_get_date($log_row->date)); ?></td>
644 + <td><?php echo esc_html($log_row->ip); ?></td>
645 + </tr>
646 + <?php endforeach; ?>
647 +
648 + </tbody>
649 + </table>
650 + </div>
651 +
652 + <?php endif; ?>
653 +
520 654 </div>
521 655 </div>
522 - <table class="form-table" role="presentation">
523 - <tbody>
524 - <tr>
525 - <th scope="row"><label for="post_content"><?php echo __('Content', 'wpdirectorykit'); ?>*</label></th>
526 - <td><?php wp_editor(wmvc_show_data('post_content', $db_data, ''), 'post_content', array('media_buttons' => FALSE)); ?></td>
527 - </tr>
528 - </tbody>
529 - </table>
656 +
657 + <?php if (wdk_get_option('wdk_is_post_content_enable', FALSE)): ?>
658 + <table class="form-table <?php if (method_exists($form, 'hasError') && $form->hasError('post_content')): ?> field-error <?php endif; ?>" role="presentation">
659 + <tbody>
660 + <tr>
661 + <th scope="row"><label for="post_content"><?php echo esc_html__('Content', 'wpdirectorykit'); ?>*</label></th>
662 + <td><?php wp_editor(
663 + wmvc_show_data('post_content', $db_data, ''),
664 + 'post_content',
665 + apply_filters('wpdirectorykit/listing_edit/textarea_wysiwyg/config', array(
666 + 'media_buttons' => TRUE,
667 + ))
668 + ); ?>
669 + <?php if (method_exists($form, 'hasError') && $form->getError('post_content')): ?>
670 + <p class="wdk-hint wdk-error">
671 + <?php echo wp_kses_post($form->getError('post_content')); ?>
672 + </p>
673 + <?php endif; ?>
674 + </td>
675 + </tr>
676 + </tbody>
677 + </table>
678 + <?php endif; ?>
530 679 </div>
531 680 </div>
532 681 <div class="postbox listing_custom_fields" style="display: block;">
533 682 <div class="inside wdk-row">
534 - <?php if(count($fields) == 0): ?>
683 + <?php if (count($fields) == 0): ?>
535 684 <div class="wdk-col-12">
536 - <div class="alert alert-success mb0"><p><?php echo __('Fields doesn\'t exists','wpdirectorykit'); ?> <a href="<?php echo get_admin_url() . "admin.php?page=wdk_fields"; ?>" class="button button-primary" id="add_field_button"><?php echo __('Manage Fields','wpdirectorykit'); ?></a></p></div>
685 + <div class="alert alert-success mb0">
686 + <p><?php echo esc_html__('Fields doesn\'t exists', 'wpdirectorykit'); ?> <a href="<?php echo esc_url(get_admin_url() . "admin.php?page=wdk_fields"); ?>" class="button button-primary" id="add_field_button"><?php echo esc_html__('Manage Fields', 'wpdirectorykit'); ?></a></p>
687 + </div>
537 688 </div>
538 689 <?php endif; ?>
539 690
540 - <?php echo wdk_generate_fields($fields, $db_data); ?>
691 + <?php wdk_generate_fields($fields, $db_data, $form); ?>
541 692 </div>
542 693 </div>
543 - <?php if(!wdk_get_option('wdk_listing_plangs_documents_disable')):?>
544 - <div class="postbox" style="display: block;">
545 - <div class="postbox-header">
546 - <h3><?php echo __('Listing plans and documents', 'wpdirectorykit'); ?></h3>
694 + <?php if (!wdk_get_option('wdk_listing_plangs_documents_disable')): ?>
695 + <div class="postbox" style="display: block;">
696 + <div class="postbox-header">
697 + <h3><?php echo esc_html__('Listing plans and documents', 'wpdirectorykit'); ?></h3>
698 + </div>
699 + <div class="inside">
700 + <p class="alert alert-info"><?php echo esc_html__('Drag and drop files to change order', 'wpdirectorykit'); ?></p>
701 + <?php
702 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
703 + echo wdk_upload_multi_files('listing_plans_documents', wmvc_show_data('listing_plans_documents', $db_data, ''));
704 + ?>
705 + </div>
547 706 </div>
548 - <div class="inside">
549 - <p class="alert alert-info"><?php echo __('Drag and drop image to change order', 'wpdirectorykit'); ?></p>
550 - <?php
551 - echo wdk_upload_multi_files('listing_plans_documents', wmvc_show_data('listing_plans_documents', $db_data, ''));
552 - ?>
707 + <?php endif; ?>
708 + <?php if (!wdk_get_option('wdk_listing_images_disable')): ?>
709 + <div class="postbox" style="display: block;">
710 + <div class="postbox-header">
711 + <h3><?php echo esc_html__('Listing Images/Videos', 'wpdirectorykit'); ?></h3>
712 + </div>
713 + <div class="inside">
714 + <p class="alert alert-info"><?php echo esc_html__('Drag and drop image to change order', 'wpdirectorykit'); ?></p>
715 + <?php
716 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText
717 + echo wmvc_upload_multiple('listing_images', wmvc_show_data('listing_images', $db_data, ''));
718 + ?>
719 + </div>
553 720 </div>
554 - </div>
555 - <?php endif;?>
556 - <div class="postbox" style="display: block;">
557 - <div class="postbox-header">
558 - <h3><?php echo __('Listing Images/Videos', 'wpdirectorykit'); ?></h3>
559 - </div>
560 - <div class="inside">
561 - <p class="alert alert-info"><?php echo __('Drag and drop image to change order', 'wpdirectorykit'); ?></p>
562 - <?php
563 - echo wmvc_upload_multiple('listing_images', wmvc_show_data('listing_images', $db_data, ''));
564 - ?>
565 - </div>
566 - </div>
567 - <button type="submit" class="button button-primary wdk-submit-loading out"><?php echo esc_html__('Save Changes','wpdirectorykit'); ?></button>
721 + <?php endif; ?>
722 + <button type="submit" class="button button-primary wdk-submit-loading out"><?php echo esc_html__('Save Changes', 'wpdirectorykit'); ?></button>
568 723 </form>
569 724 </div>
570 725
571 - <?php do_action('wpdirectorykit/admin/listing/edit/after_form', $db_data);?>
726 + <?php do_action('wpdirectorykit/admin/listing/edit/after_form', $db_data); ?>
572 727 </div>
573 728 <?php
574 - wp_enqueue_style('leaflet');
575 - wp_enqueue_script('leaflet');
576 -
577 - wp_enqueue_style('wdk-notify');
578 - wp_enqueue_script('wdk-notify');
579 -
580 - wp_enqueue_style('jquery-confirm');
581 - wp_enqueue_script('jquery-confirm');
729 +wp_enqueue_style('leaflet');
730 +wp_enqueue_script('leaflet');
731 +
732 +wp_enqueue_style('wdk-notify');
733 +wp_enqueue_script('wdk-notify');
734 +
735 +wp_enqueue_style('jquery-confirm');
736 +wp_enqueue_script('jquery-confirm');
737 +
738 +
739 +wp_enqueue_style('wdk-geo-listing-google-places-search');
740 +wp_enqueue_script('wdk-geo-listing-google-places-search');
582 741 ?>
583 742
584 743 <?php
585 - wp_enqueue_script( 'jquery-ui-core', false, array('jquery') );
586 - wp_enqueue_script( 'jquery-ui-sortable', false, array('jquery') );
744 +wp_enqueue_script('jquery-ui-core', false, array('jquery'));
745 +wp_enqueue_script('jquery-ui-sortable', false, array('jquery'));
587 746 ?>
588 747
589 748 <script>
590 749 // Generate table
@@ -589,14 +748,14 @@
589 748 <script>
590 749 // Generate table
591 750 jQuery(document).ready(function($) {
592 751
593 - <?php if(get_option('wdk_is_address_enabled', FALSE)): ?>
594 - var wdk_edit_map_marker,wdk_timerMap,wdk_edit_map;
752 + <?php if (get_option('wdk_is_address_enabled', FALSE)): ?>
753 + var wdk_edit_map_marker, wdk_timerMap, wdk_edit_map;
595 754 wdk_edit_map = L.map('map', {
596 - center: [<?php echo (wmvc_show_data('lat', $db_data) ?: get_option('wdk_default_lat', 51.505)); ?>, <?php echo (wmvc_show_data('lng', $db_data) ?: get_option('wdk_default_lng', -0.09)); ?>],
755 + center: [<?php echo esc_html(wmvc_show_data('lat', $db_data) ?: get_option('wdk_default_lat', 51.505)); ?>, <?php echo esc_html(wmvc_show_data('lng', $db_data) ?: get_option('wdk_default_lng', -0.09)); ?>],
597 756 zoom: 4,
598 - });
757 + });
599 758
600 759 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
601 760 attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
602 761 }).addTo(wdk_edit_map);
@@ -601,16 +760,20 @@
601 760 attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
602 761 }).addTo(wdk_edit_map);
603 762
604 763 wdk_edit_map_marker = L.marker(
605 - [<?php echo (wmvc_show_data('lat', $db_data) ?: get_option('wdk_default_lat', 51.505)); ?>, <?php echo (wmvc_show_data('lng', $db_data) ?: get_option('wdk_default_lng', -0.09)); ?>],
606 - {draggable: true}
764 + [<?php echo esc_html(wmvc_show_data('lat', $db_data) ?: get_option('wdk_default_lat', 51.505)); ?>, <?php echo esc_html(wmvc_show_data('lng', $db_data) ?: get_option('wdk_default_lng', -0.09)); ?>], {
765 + draggable: true
766 + }
607 767 ).addTo(wdk_edit_map);
608 768
609 - wdk_edit_map_marker.on('dragend', function(event){
769 + wdk_edit_map_marker.on('dragend', function(event) {
610 770 clearTimeout(wdk_timerMap);
611 771 var marker = event.target;
612 - var {lat,lng} = marker.getLatLng();
772 + var {
773 + lat,
774 + lng
775 + } = marker.getLatLng();
613 776 $('#input_lat').val(lat);
614 777 $('#input_lng').val(lng);
615 778 //retrieved the position
616 779 });
@@ -615,82 +778,139 @@
615 778 //retrieved the position
616 779 });
617 780
618 781 /* reset map and gps */
619 - $('.wdk_action_clear_gps_reset_map').on('click', function(e){
782 + $('.wdk_action_clear_gps_reset_map').on('click', function(e) {
620 783 e.preventDefault();
621 784 $('#input_lat,#input_lng').val('');
622 785
623 786 /* move marker on default poisition */
624 - wdk_edit_map_marker.setLatLng([<?php echo esc_js(get_option('wdk_default_lat', 51.505)); ?>, <?php echo esc_js(get_option('wdk_default_lng', -0.09)); ?>]).update();
625 - wdk_edit_map.panTo(new L.LatLng(<?php echo esc_js(get_option('wdk_default_lat', 51.505)); ?>, <?php echo esc_js(get_option('wdk_default_lng', -0.09)); ?>));
787 + wdk_edit_map_marker.setLatLng([<?php echo esc_js(get_option('wdk_default_lat', 51.505)); ?>, <?php echo esc_js(get_option('wdk_default_lng', -0.09)); ?>]).update();
788 + wdk_edit_map.panTo(new L.LatLng(<?php echo esc_js(get_option('wdk_default_lat', 51.505)); ?>, <?php echo esc_js(get_option('wdk_default_lng', -0.09)); ?>));
626 789 });
627 790
628 - $('#input_address').on('change keyup', function (e) {
791 + wdk_edit_map.on('click', function(e) {
792 + let lat = e.latlng.lat;
793 + let lng = e.latlng.lng;
794 +
795 + wdk_edit_map_marker.setLatLng([lat, lng]).update();
796 + $('#input_lat').val(lat);
797 + $('#input_lng').val(lng);
798 + })
799 +
800 + $('#input_address').on('change keyup', function(e) {
629 801 clearTimeout(wdk_timerMap);
630 - wdk_timerMap = setTimeout(function () {
631 - $.get('https://nominatim.openstreetmap.org/search?format=json&q='+$('#input_address').val(), function(data){
632 - if(data.length && typeof data[0]) {
633 - var {lat,lon} =data[0];
634 - wdk_edit_map_marker.setLatLng([lat, lon]).update();
635 - wdk_edit_map.panTo(new L.LatLng(lat, lon));
636 - $('#input_lat').val(lat);
637 - $('#input_lng').val(lon);
638 - } else {
639 - wdk_log_notify('<?php echo esc_js(__('Address not found', 'wpdirectorykit')); ?>', 'error');
640 - return;
641 - }
642 - });
802 + wdk_timerMap = setTimeout(function() {
803 + var googleApiKey = '<?php echo esc_js(get_option('wdk_geo_google_api_key', '')); ?>';
804 + var address = $('#input_address').val();
805 +
806 + // If we have a Google API key, try Google Geocoding FIRST
807 + if (googleApiKey) {
808 + $.get('https://maps.googleapis.com/maps/api/geocode/json?address=' + encodeURIComponent(address) + '&key=' + googleApiKey, function(googleData) {
809 + if (googleData.status === "OK" && googleData.results.length > 0) {
810 + var location = googleData.results[0].geometry.location;
811 + wdk_edit_map_marker.setLatLng([location.lat, location.lng]).update();
812 + wdk_edit_map.panTo(new L.LatLng(location.lat, location.lng));
813 + $('#input_lat').val(location.lat);
814 + $('#input_lng').val(location.lng);
815 + } else {
816 + // If not found by Google, try Nominatim
817 + $.get('https://nominatim.openstreetmap.org/search?format=json&q=' + encodeURIComponent(address), function(data) {
818 + if (data.length && typeof data[0]) {
819 + var {
820 + lat,
821 + lon
822 + } = data[0];
823 + wdk_edit_map_marker.setLatLng([lat, lon]).update();
824 + wdk_edit_map.panTo(new L.LatLng(lat, lon));
825 + $('#input_lat').val(lat);
826 + $('#input_lng').val(lon);
827 + } else {
828 + wdk_log_notify('<?php echo esc_js(__('Address not found', 'wpdirectorykit')); ?>', 'error');
829 + }
830 + });
831 + }
832 + }).fail(function() {
833 + wdk_log_notify('<?php echo esc_js(__('Google Geocoding API request failed.', 'wpdirectorykit')); ?>', 'error');
834 + });
835 + } else {
836 + // If no API key, use Nominatim as fallback/only method
837 + $.get('https://nominatim.openstreetmap.org/search?format=json&q=' + encodeURIComponent(address), function(data) {
838 + if (data.length && typeof data[0]) {
839 + var {
840 + lat,
841 + lon
842 + } = data[0];
843 + wdk_edit_map_marker.setLatLng([lat, lon]).update();
844 + wdk_edit_map.panTo(new L.LatLng(lat, lon));
845 + $('#input_lat').val(lat);
846 + $('#input_lng').val(lon);
847 + } else {
848 + wdk_log_notify('<?php echo esc_js(__('Address not found', 'wpdirectorykit')); ?>', 'error');
849 + if ($('#input_address').parent().find('[data-alert="google"]').length === 0) {
850 + $('#input_address').parent().append(`<div class="alert alert-info" data-alert="google"><?php echo wp_kses(
851 + wdk_sprintf(
852 + /* translators: 1: Tag with link open, 2: close link tag. */
853 + esc_html__('Address not found, try enter google maps api key for more accurate results %1$s[here]%2$s','wpdirectorykit'),
854 + '<a target="_blank" href="'.esc_url(admin_url("admin.php?page=wdk_settings&wdk_tabs=wdk_tab_apis#wdk_geo_google_api_key")).'">','</a>'
855 + ),
856 + array(
857 + 'a' => array(
858 + 'href' => true,
859 + 'target' => true,
860 + ),
861 + )
862 + );?></div>`);
863 + }
864 + return;
865 + }
866 + });
867 + }
868 +
643 869 }, 1000);
644 870 });
645 871
646 - $('#input_gps').on('change keyup', function (e) {
872 + $('#input_gps').on('change keyup', function(e) {
647 873 wdk_edit_map.panTo(new L.LatLng($('#input_lat').val(), $('#input_lng').val()));
648 - wdk_edit_map_marker.setLatLng([parseFloat($('#input_lat').val()), parseFloat($('#input_lng').val())]).update();
874 + wdk_edit_map_marker.setLatLng([parseFloat($('#input_lat').val()), parseFloat($('#input_lng').val())]).update();
649 875 })
650 - <?php endif;?>
876 + <?php endif; ?>
651 877
652 878 /* agents */
653 -
654 - $('.agents_group .add_button').on( "click", function(e) {
879 +
880 + $('.agents_group .add_button').on("click", function(e) {
655 881 e.preventDefault();
656 882 var group_agent = $(this).closest('.agents_group');
657 883 var agent_id = group_agent.find('input[name="agent_id"]').val();
658 -
659 - if(agent_id != '')
660 - {
661 - var exists = 0 != group_agent.find('#listing_agents').find('option[value='+agent_id+']').length;
662 - var agent_name = group_agent.find('.wdk_dropdown_tree .btn-group .btn:first').text();
663 -
664 - if(!exists)
665 - {
666 - group_agent.find('#listing_agents').append('<option value="'+agent_id+'" selected>'+agent_name+'</option>');
667 - }
668 - else
669 - {
884 +
885 + if (agent_id != '') {
886 + var exists = 0 != group_agent.find('#listing_agents').find('option[value=' + agent_id + ']').length;
887 + var agent_name = group_agent.find('.wdk_dropdown_tree .btn-group .btn:first').text();
888 +
889 + if (!exists) {
890 + group_agent.find('#listing_agents').append('<option value="' + agent_id + '" selected>' + agent_name + '</option>');
891 + } else {
670 892 wdk_log_notify('<?php echo esc_js(__('Already on list', 'wpdirectorykit')); ?>', 'error');
671 893 }
672 - }
673 - else
674 - {
894 + } else {
675 895 wdk_log_notify('<?php echo esc_js(__('Not selected', 'wpdirectorykit')); ?>', 'error');
676 896 }
677 897 });
678 898
679 - $('.agents_group .rem_button').on( "click", function() {
899 + $('.agents_group .rem_button').on("click", function() {
680 900 $(this).closest('.agents_group').find('#listing_agents option:selected:last').remove();
681 901 });
682 902
683 -
684 - $('form.form_listing').on('submit', function(e){
685 - if($(this).find('#listing_agents').length) {
686 - $('#listing_agents').find('option').prop("selected", true).trigger('change')
687 - }
903 +
904 + $('form.form_listing').on('submit', function(e) {
905 + if ($(this).find('#listing_agents').length) {
906 + $('#listing_agents').find('option').prop("selected", true).trigger('change')
907 + }
688 908 });
689 -
909 +
690 910 wdk_childs_listings_list();
691 911
692 - $('.select_ajax_user').on('select2:selecting', function (e) {
912 + $('.select_ajax_user').on('select2:selecting', function(e) {
693 913 // Get the selected option value
694 914 var selectedValue = e.params.args.data.id;
695 915 var selecteduserEditor = $('[name="user_id_editor"]').val();
696 916
@@ -695,115 +915,122 @@
695 915 var selecteduserEditor = $('[name="user_id_editor"]').val();
696 916
697 917 // Check if the selected option should be prevented from being added
698 918 if (selectedValue == selecteduserEditor) {
699 - // Prevent the option from being added
919 + // Prevent the option from being added
700 920 e.preventDefault();
701 - wdk_log_notify('<?php echo esc_js(esc_attr__('User Alread defiend like editor','wpdirectorykit'));?>', 'error');
921 + wdk_log_notify('<?php echo esc_js(esc_attr__('User Alread defiend like editor', 'wpdirectorykit')); ?>', 'error');
702 922 }
703 923 });
704 924
925 +
926 +
705 927 });
706 928
707 929
708 -const wdk_childs_listings_list = ($selector= '.wdk-listing-childs-wrap', $field_name = 'listing_related_ids') => {
709 - var el_wrapper = jQuery($selector);
710 - var remove_child_listing,save_data;
711 -
712 - remove_child_listing = () => {
713 - el_wrapper.find( ".wdk-listing-childs-drop .drop-listing-item .remove" ).off().on('click', function(e){
714 - e.preventDefault();
930 + const wdk_childs_listings_list = ($selector = '.wdk-listing-childs-wrap', $field_name = 'listing_related_ids') => {
931 + var el_wrapper = jQuery($selector);
932 + var remove_child_listing, save_data;
715 933
716 - if(confirm("<?php echo esc_js(__('Are you sure?','wpdirectorykit')); ?>")) {
717 - jQuery(this).closest('.drop-listing-item').remove();
718 - save_data();
719 - }
720 - });
721 - };
934 + remove_child_listing = () => {
935 + el_wrapper.find(".wdk-listing-childs-drop .drop-listing-item .remove").off().on('click', function(e) {
936 + e.preventDefault();
722 937
723 - save_data = () => {
724 - var data_fields_sublist = '';
725 - el_wrapper.find('.wdk-listing-childs-drop .drop-listing-item').each(function( index ) {
726 - if(data_fields_sublist !='')
727 - data_fields_sublist +=',';
938 + if (confirm("<?php echo esc_js(__('Are you sure?', 'wpdirectorykit')); ?>")) {
939 + jQuery(this).closest('.drop-listing-item').remove();
940 + save_data();
941 + }
942 + });
943 + };
728 944
729 - data_fields_sublist += jQuery(this).attr('data-idlisting');
730 - });
731 - console.log(el_wrapper.find('input[name="'+$field_name+'"]'));
732 - el_wrapper.find('input[name="'+$field_name+'"]').val(data_fields_sublist);
733 - }
945 + save_data = () => {
946 + var data_fields_sublist = '';
947 + el_wrapper.find('.wdk-listing-childs-drop .drop-listing-item').each(function(index) {
948 + if (data_fields_sublist != '')
949 + data_fields_sublist += ',';
734 950
735 - remove_child_listing();
951 + data_fields_sublist += jQuery(this).attr('data-idlisting');
952 + });
953 + el_wrapper.find('input[name="' + $field_name + '"]').val(data_fields_sublist);
954 + }
736 955
737 - el_wrapper.find( ".wdk-listing-childs-drop" ).sortable({
956 + remove_child_listing();
957 +
958 + el_wrapper.find(".wdk-listing-childs-drop").sortable({
738 959 connectWith: ".wdk-listing-childs-drop",
739 960 placeholder: "ui-sortable-placeholder widget-placeholder",
740 961 update: function(event, ui) {
741 962 save_data();
742 963 }
743 - }).disableSelection();
964 + }).disableSelection();
744 965
745 - el_wrapper.find('.add_new_listing').on('click', function(e){
746 - e.preventDefault();
966 + el_wrapper.find('.add_new_listing').on('click', function(e) {
967 + e.preventDefault();
747 968
748 - var listing_id = el_wrapper.find('input[name="new_listing_id"]').val();
749 - var listing_title = el_wrapper.find('.wdk_dropdown_tree button:first-child').text();
969 + var listing_id = el_wrapper.find('input[name="new_listing_id"]').val();
970 + var listing_title = el_wrapper.find('.wdk_dropdown_tree button:first-child').text();
750 971
751 - if(listing_id == '') {
752 - wdk_log_notify('<?php echo esc_js(esc_attr__('Listing Not Defined','wpdirectorykit'));?>', 'error');
753 - return;
754 - }
972 + if (listing_id == '') {
973 + wdk_log_notify('<?php echo esc_js(esc_attr__('Listing Not Defined', 'wpdirectorykit')); ?>', 'error');
974 + return;
975 + }
755 976
756 - if(listing_id == '<?php echo esc_js(wmvc_show_data('ID', $db_data));?>') {
757 - wdk_log_notify('<?php echo esc_js(esc_attr__('Impossible add current listing','wpdirectorykit'));?>', 'error');
758 - return;
759 - }
977 + if (listing_id == '<?php echo esc_js(wmvc_show_data('ID', $db_data)); ?>') {
978 + wdk_log_notify('<?php echo esc_js(esc_attr__('Impossible add current listing', 'wpdirectorykit')); ?>', 'error');
979 + return;
980 + }
760 981
761 - if( el_wrapper.find( ".wdk-listing-childs-drop .drop-listing-item[data-idlisting='"+listing_id+"']" ).length) {
762 - wdk_log_notify('<?php echo esc_js(esc_attr__('Listing already added','wpdirectorykit'));?>', 'error');
763 - return;
764 - }
982 + if (el_wrapper.find(".wdk-listing-childs-drop .drop-listing-item[data-idlisting='" + listing_id + "']").length) {
983 + wdk_log_notify('<?php echo esc_js(esc_attr__('Listing already added', 'wpdirectorykit')); ?>', 'error');
984 + return;
985 + }
765 986
766 - var item_html = '<div class="drop-listing-item" data-idlisting="'+listing_id+'">\n\
987 + var item_html = '<div class="drop-listing-item" data-idlisting="' + listing_id + '">\n\
767 988 <h3 class="handle"> \n\
768 - <a target="_blank" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id='));?>'+listing_id+'" class="title">'+listing_title+'</a>\n\
769 - <a target="_blank" class="btn" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id='));?>'+listing_id+'" target="_blank" title="Edit"><span class="dashicons dashicons-edit"></span></a>\n\
770 - <a class="question_sure btn remove" href="#" title="<?php echo esc_js(__('Remove','wpdirectorykit'));?>"><span class="dashicons dashicons-no"></span></a>\n\
989 + <a target="_blank" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id=')); ?>' + listing_id + '" class="title">' + listing_title + '</a>\n\
990 + <a target="_blank" class="btn" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id=')); ?>' + listing_id + '" target="_blank" title="Edit"><span class="dashicons dashicons-edit"></span></a>\n\
991 + <a class="question_sure btn remove" href="#" title="<?php echo esc_js(__('Remove', 'wpdirectorykit')); ?>"><span class="dashicons dashicons-no"></span></a>\n\
771 992 </h3> \n\
772 993 </div>';
773 994
774 - el_wrapper.find( ".wdk-listing-childs-drop" ).append(item_html);
775 - remove_child_listing();
776 - save_data();
777 - });
778 -};
995 + el_wrapper.find(".wdk-listing-childs-drop").append(item_html);
996 + remove_child_listing();
997 + save_data();
998 + });
999 + };
779 1000
1001 +
780 1002 </script>
781 1003
782 1004 <style>
1005 + .form-table .agent_add.form-inline .wdk-field-edit {
1006 + display: inline-block;
1007 + }
783 1008
784 -.form-table .agent_add.form-inline .wdk-field-edit {
785 - display: inline-block;
786 -}
1009 + .form-table .agent_add.form-inline .wdk-field-edit .wdk-field-container {
1010 + padding: 0;
1011 + }
787 1012
788 -.form-table .agent_add.form-inline .wdk-field-edit .wdk-field-container {
789 - padding: 0;
790 -}
1013 + .form-table .agent_add.form-inline .wdk-field-edit,
1014 + .form-table .agent_add.form-inline .button {
1015 + margin: 15px 0px;
1016 + }
791 1017
792 -.form-table .agent_add.form-inline .wdk-field-edit,
793 -.form-table .agent_add.form-inline .button {
794 - margin: 15px 0px;
795 -}
1018 + .form-table #listing_agents {
1019 + max-width: 100%;
1020 + width: 25em;
1021 + }
796 1022
797 -.form-table #listing_agents {
798 - max-width: 100%;
799 - width: 25em;
800 -}
1023 + .form-table .agent_add.form-inline .wdk_dropdown_tree {
1024 + width: 230px;
1025 + max-width: 100%;
1026 + }
801 1027
802 -.form-table .agent_add.form-inline .wdk_dropdown_tree {
803 - width: 230px;
804 - max-width: 100%;
805 -}
806 -
1028 + .wdk-wrap .wdk-row {
1029 + margin-right: -12px;
1030 + margin-left: -12px;
1031 + }
1032 +
807 1033 </style>
808 1034
809 -<?php $this->view('general/footer', $data); ?>
1035 +<?php $this->view('general/footer', $data); ?>
1036 +