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 | elementor-extensions/class-hider.php +571 -16 1.1.0 → 1.5.9 View file →
@@ -51,8 +51,12 @@
51 51 'element' => 'common',
52 52 'action' => '_section_style',
53 53 ),
54 54 array(
55 + 'element' => 'container',
56 + 'action' => 'section_layout',
57 + ),
58 + array(
55 59 'element' => 'section',
56 60 'action' => 'section_advanced',
57 61 ),
58 62 array(
@@ -193,8 +197,12 @@
193 197
194 198 // SECTION
195 199 add_action( 'elementor/frontend/section/before_render', [ $this, '_start_element' ], 10, 1 );
196 200 add_action( 'elementor/frontend/section/after_render', [ $this, '_end_element' ], 10, 1 );
201 +
202 + // CONTAINER
203 + add_action( 'elementor/frontend/container/before_render', [ $this, '_start_element' ], 10, 1 );
204 + add_action( 'elementor/frontend/container/after_render', [ $this, '_end_element' ], 10, 1 );
197 205
198 206 // COLUMN
199 207 add_action( 'elementor/frontend/column/before_render', [ $this, '_start_element' ], 10, 1 );
200 208 add_action( 'elementor/frontend/column/after_render', [ $this, '_end_element' ], 10, 1 );
@@ -228,17 +236,45 @@
228 236 'tab' => 'advanced',
229 237 ]
230 238 );
231 239
232 - $WMVC = &wdk_get_instance();
233 - $WMVC->model('field_m');
234 - $fields_data = $WMVC->field_m->get();
240 + $fields_data = wdk_cached_field_get();
235 241 $fields_list = array('' => esc_html__('Not Selected', 'wpdirectorykit'));
236 242 $order_i = 0;
243 + $fields_allow_for_get = array();
244 + $fields_allow_for_compare = array();
245 + $fields_list [(++$order_i).'__section'] = esc_html__('-- Section Custom fields --', 'wpdirectorykit');
237 246
238 - $fields_list [(++$order_i).'__section'] = esc_html__('-- Section Custom fields --', 'wpdirectorykit');
247 + $fields_list [(++$order_i).'__hide_on_get'] = esc_html__('Hide if GET is', 'wpdirectorykit');
248 + $fields_allow_for_get[] = $order_i.'__hide_on_get';
249 + $fields_list [(++$order_i).'__show_on_get'] = esc_html__('Show if GET is', 'wpdirectorykit');
250 + $fields_allow_for_get[] = $order_i.'__show_on_get';
251 +
252 + $fields_list [(++$order_i).'__profile_have_agency'] = esc_html__('Profile page is agency', 'wpdirectorykit');
253 + $fields_list [(++$order_i).'__profile_have_listings'] = esc_html__('Profile page have listings', 'wpdirectorykit');
254 + $fields_list [(++$order_i).'__profile_nothave_listings'] = esc_html__('Profile page haven\'t listings', 'wpdirectorykit');
255 + $fields_list [(++$order_i).'__profile_have_membership'] = esc_html__('Profile page have membership', 'wpdirectorykit');
256 + $fields_list [(++$order_i).'__profile_nothave_membership'] = esc_html__('Profile page haven\'t membership', 'wpdirectorykit');
257 + $fields_list [(++$order_i).'__have_agency'] = esc_html__('Listing have agency', 'wpdirectorykit');
258 + $fields_list [(++$order_i).'__have_sublistings'] = esc_html__('Listing have sublistings', 'wpdirectorykit');
259 + $fields_list [(++$order_i).'__have_wdk_rating'] = esc_html__('Exists WDK Rating', 'wpdirectorykit');
260 + $fields_list [(++$order_i).'__havent_wdk_rating'] = esc_html__('WDK Rating is not exists', 'wpdirectorykit');
261 + $fields_list [(++$order_i).'__have_calendar'] = esc_html__('Listing have calendar', 'wpdirectorykit');
262 + $fields_list [(++$order_i).'__havent_calendar'] = esc_html__('Listing not have calendar', 'wpdirectorykit');
263 + $fields_list [(++$order_i).'__havent_images'] = esc_html__('Listing not have images', 'wpdirectorykit');
264 + $fields_list [(++$order_i).'__have_images'] = esc_html__('Listing have images', 'wpdirectorykit');
265 + $fields_list [(++$order_i).'__havent_plan_images'] = esc_html__('Listing not have plan images', 'wpdirectorykit');
266 + $fields_list [(++$order_i).'__have_plan_images'] = esc_html__('Listing have plan images', 'wpdirectorykit');
267 +
268 + $fields_list [(++$order_i).'__membership_subscription_id_visitor'] = esc_html__('Id Membership Subscription Visitor', 'wpdirectorykit');
269 + $fields_allow_for_compare[] = ($order_i).'__membership_subscription_id_visitor';
270 +
271 + $fields_list [(++$order_i).'__membership_subscription_id_owner'] = esc_html__('Id Membership Subscription Owner', 'wpdirectorykit');
272 + $fields_allow_for_compare[] = ($order_i).'__membership_subscription_id_owner';
273 +
239 274 $fields_list [(++$order_i).'__idlisting'] = esc_html__('Id listing', 'wpdirectorykit');
240 275 $fields_list [(++$order_i).'__post_id'] = esc_html__('Post Id', 'wpdirectorykit');
276 + $fields_allow_for_compare[] = ($order_i).'__post_id';
241 277 $fields_list [(++$order_i).'__lat'] = esc_html__('Gps Lat', 'wpdirectorykit');
242 278 $fields_list [(++$order_i).'__lng'] = esc_html__('Gps Lng', 'wpdirectorykit');
243 279 $fields_list [(++$order_i).'__date'] = esc_html__('Date', 'wpdirectorykit');
244 280 $fields_list [(++$order_i).'__date_modified'] = esc_html__('Date Modified', 'wpdirectorykit');
@@ -244,10 +280,11 @@
244 280 $fields_list [(++$order_i).'__date_modified'] = esc_html__('Date Modified', 'wpdirectorykit');
245 281 $fields_list [(++$order_i).'__post_content'] = esc_html__('WP Content', 'wpdirectorykit');
246 282 $fields_list [(++$order_i).'__address'] = esc_html__('Address', 'wpdirectorykit');
247 283 $fields_list [(++$order_i).'__category_id'] = esc_html__('Category', 'wpdirectorykit');
284 + $fields_allow_for_compare[] = ($order_i).'__category_id';
248 285 $fields_list [(++$order_i).'__location_id'] = esc_html__('Location', 'wpdirectorykit');
249 -
286 + $fields_allow_for_compare[] = ($order_i).'__location_id';
250 287 foreach($fields_data as $field)
251 288 {
252 289 if(wmvc_show_data('field_type', $field) == 'SECTION') {
253 290 $fields_list [(++$order_i).'section__'.wmvc_show_data('idfield', $field)] = '-- '.esc_html__('Section', 'wpdirectorykit').' '.wmvc_show_data('field_label', $field).' --';
@@ -252,12 +289,24 @@
252 289 if(wmvc_show_data('field_type', $field) == 'SECTION') {
253 290 $fields_list [(++$order_i).'section__'.wmvc_show_data('idfield', $field)] = '-- '.esc_html__('Section', 'wpdirectorykit').' '.wmvc_show_data('field_label', $field).' --';
254 291 } else {
255 292 $fields_list[(++$order_i).'__'.wmvc_show_data('idfield', $field)] = '#'.wmvc_show_data('idfield', $field).' '.wmvc_show_data('field_label', $field).'['.wmvc_show_data('field_type', $field).']';
293 + $fields_allow_for_compare[] = ($order_i).'__'.wmvc_show_data('idfield', $field);
256 294 }
257 295 }
258 296
259 297 $element->add_control(
298 + 'class_hider_important_note',
299 + [
300 + 'label' => '',
301 + 'type' => \Elementor\Controls_Manager::RAW_HTML,
302 + 'raw' => esc_html__('Element will be hidden if related field is empty or condition is met.', 'wpdirectorykit'),
303 + 'content_classes' => 'wdk_elementor_hint',
304 + 'separator' => 'after',
305 + ]
306 + );
307 +
308 + $element->add_control(
260 309 'wdk_related_field',
261 310 [
262 311 'label' => esc_html__('WDK Related FIeld', 'wpdirectorykit'),
263 312 'type' => Controls_Manager::SELECT,
@@ -262,12 +311,71 @@
262 311 'label' => esc_html__('WDK Related FIeld', 'wpdirectorykit'),
263 312 'type' => Controls_Manager::SELECT,
264 313 'options' => $fields_list,
265 314 'default' => '',
266 - 'separator' => 'after',
315 + 'return_value' => 'section',
316 + 'frontend_available' => true,
317 + 'render_type' => 'none',
267 318 ]
268 319 );
269 320
321 + $element->add_control(
322 + 'wdk_related_show_on_get_key',
323 + [
324 + 'label' => __( 'Key', 'wpdirectorykit' ),
325 + 'type' => \Elementor\Controls_Manager::TEXT,
326 + 'default' => '',
327 + 'condition' => [
328 + 'wdk_related_field' => $fields_allow_for_get,
329 + ],
330 + ]
331 + );
332 +
333 + $element->add_control(
334 + 'wdk_related_show_on_get_value',
335 + [
336 + 'label' => __( 'Value', 'wpdirectorykit' ),
337 + 'type' => \Elementor\Controls_Manager::TEXT,
338 + 'default' => '',
339 + 'condition' => [
340 + 'wdk_related_field' => $fields_allow_for_get,
341 + ],
342 + ]
343 + );
344 +
345 + $element->add_control(
346 + 'wdk_related_compare_type',
347 + [
348 + 'label' => __( 'Compare Type', 'wpdirectorykit' ),
349 + 'type' => \Elementor\Controls_Manager::SELECT,
350 + 'default' => '',
351 + 'options' => [
352 + '' => esc_html__('Default (if not empty)', 'wpdirectorykit'),
353 + '==' => esc_html__('==', 'wpdirectorykit'),
354 + '!=' => esc_html__('!=', 'wpdirectorykit'),
355 + '>' => esc_html__('>', 'wpdirectorykit'),
356 + '<' => esc_html__('<', 'wpdirectorykit'),
357 + '!in' => esc_html__('!in', 'wpdirectorykit'),
358 + 'in' => esc_html__('in', 'wpdirectorykit'),
359 + ],
360 + 'condition' => [
361 + 'wdk_related_field' => $fields_allow_for_compare,
362 + ],
363 + ]
364 + );
365 +
366 + $element->add_control(
367 + 'wdk_related_compare_value',
368 + [
369 + 'label' => __( 'Value', 'wpdirectorykit' ),
370 + 'type' => \Elementor\Controls_Manager::TEXT,
371 + 'default' => '',
372 + 'condition' => [
373 + 'wdk_related_field' => $fields_allow_for_compare,
374 + ],
375 + ]
376 + );
377 +
270 378 $element->end_controls_section();
271 379
272 380 }
273 381
@@ -272,19 +380,22 @@
272 380 }
273 381
274 382 public function _start_element( $element ) {
275 383 global $wdk_listing_id;
384 + $wdkmembership_user_id = wdk_get_profile_page_id();
276 385
277 - if(Plugin::$instance->editor->is_edit_mode() || empty($wdk_listing_id))return;
386 + //if(Plugin::$instance->editor->is_edit_mode())return;
387 + if(Plugin::$instance->editor->is_edit_mode() || (empty($wdk_listing_id) && empty($wdkmembership_user_id)))return;
278 388 //if(!in_array($element->get_name(), $this->supported_elements))return;
279 389
280 390 $WMVC = &wdk_get_instance();
281 391 $WMVC->model('field_m');
282 -
392 + $WMVC->load_helper('listing');
283 393 $settings = $element->get_settings_for_display();
284 -
394 +
285 395 if(isset($settings['wdk_related_field']) && !empty($settings['wdk_related_field']))
286 396 {
397 +
287 398 $field_id = NULL;
288 399 $field_value = NULL;
289 400 $field_empty = FALSE;
290 401 if(strpos($settings['wdk_related_field'], '__') !== FALSE){
@@ -289,13 +400,171 @@
289 400 $field_empty = FALSE;
290 401 if(strpos($settings['wdk_related_field'], '__') !== FALSE){
291 402 $field_id = substr($settings['wdk_related_field'], strpos($settings['wdk_related_field'],'__')+2);
292 403 }
404 +
405 + if(is_null($field_id))return;
406 + if($field_id == 'show_on_get' || $field_id == 'hide_on_get') {
407 + if(!empty($settings['wdk_related_show_on_get_key']) && !empty($settings['wdk_related_show_on_get_value'])) {
408 + $get_val = null;
409 + if(isset($_GET[$settings['wdk_related_show_on_get_key']])){
410 + $get_val = sanitize_text_field($_GET[$settings['wdk_related_show_on_get_key']]);
411 + }
293 412
294 - if(is_null($field_id))return;
413 + if($field_id == 'hide_on_get') {
414 + if($get_val == $settings['wdk_related_show_on_get_value']){
415 + $field_empty = true;
416 + }
417 + } else if($field_id == 'show_on_get') {
418 + if($get_val !== $settings['wdk_related_show_on_get_value']){
419 + $field_empty = true;
420 + }
421 + }
422 + }
423 + }elseif($field_id == 'havent_wdk_rating' || $field_id == 'have_wdk_rating') {
424 + if(function_exists('run_wdk_reviews')) {
425 + global $Winter_MVC_wdk_reviews;
426 + $Winter_MVC_wdk_reviews->model('reviews_m');
427 + $generate_avg_total = null;
295 428
296 - if(wdk_field_option($field_id, 'field_type') == "SECTION") {
429 + if($wdkmembership_user_id) {
430 + $generate_avg_total = $Winter_MVC_wdk_reviews->reviews_m->generate_avg_total($wdkmembership_user_id);
431 + } else {
432 + $generate_avg_total = $Winter_MVC_wdk_reviews->reviews_m->generate_avg_total($wdk_listing_id);
433 + }
434 +
435 + if($field_id == 'havent_wdk_rating') {
436 +
437 + if($generate_avg_total && !empty($generate_avg_total['reviewers_total'])){
438 + $field_empty = true;
439 + }
440 + } else if($field_id == 'have_wdk_rating') {
441 + if(!$generate_avg_total || ($generate_avg_total && empty($generate_avg_total['reviewers_total']))){
442 + $field_empty = true;
443 + }
444 + }
445 + }
446 + }elseif($field_id == 'havent_calendar' || $field_id == 'have_calendar') {
447 + if(function_exists('run_wdk_bookings')) {
448 + global $Winter_MVC_wdk_bookings;
449 + $Winter_MVC_wdk_bookings->model('calendar_m');
450 + $calendar = $Winter_MVC_wdk_bookings->calendar_m->get_by(array('post_id' => $wdk_listing_id, 'is_activated' => 1));
451 + if($field_id == 'havent_calendar') {
452 + if($calendar){
453 + $field_empty = true;
454 + }
455 + } else if($field_id == 'have_calendar') {
456 + if(!$calendar){
457 + $field_empty = true;
458 + }
459 + }
460 + }
461 + } elseif($field_id == 'profile_have_agency') {
462 + $wdkmembership_user_id = wdk_get_profile_page_id();
463 + $field_empty = true;
297 464
465 +
466 + if($wdkmembership_user_id) {
467 + $user = wdk_get_user_data($wdkmembership_user_id);
468 + if($user && wmvc_is_user_in_role($user['userdata'], 'wdk_agency')) {
469 + $field_empty = false;
470 + }
471 +
472 + }
473 + } elseif($field_id == 'profile_have_listings') {
474 + $wdkmembership_user_id = wdk_get_profile_page_id();
475 + $field_empty = true;
476 +
477 +
478 + if($wdkmembership_user_id) {
479 + $user = wdk_get_user_data($wdkmembership_user_id);
480 + $WMVC->model('listing_m');
481 + if($WMVC->listing_m->total(array('is_activated' => 1,'is_approved'=>1), TRUE, $wdkmembership_user_id, TRUE)) {
482 + $field_empty = false;
483 + }
484 + }
485 + } elseif($field_id == 'profile_nothave_listings') {
486 + $wdkmembership_user_id = wdk_get_profile_page_id();
487 + $field_empty = true;
488 +
489 +
490 + if($wdkmembership_user_id) {
491 + $user = wdk_get_user_data($wdkmembership_user_id);
492 + $WMVC->model('listing_m');
493 + if(!$WMVC->listing_m->total(array('is_activated' => 1,'is_approved'=>1), TRUE, $wdkmembership_user_id, TRUE)) {
494 + $field_empty = false;
495 + }
496 + }
497 + } elseif($field_id == 'profile_have_listings') {
498 + $wdkmembership_user_id = wdk_get_profile_page_id();
499 + $field_empty = true;
500 +
501 +
502 + if($wdkmembership_user_id) {
503 + if(wdk_membership_subscription_booking_enabled($wdkmembership_user_id)) {
504 + $field_empty = false;
505 + }
506 + }
507 + } elseif($field_id == 'profile_nothave_membership') {
508 + $wdkmembership_user_id = wdk_get_profile_page_id();
509 + $field_empty = true;
510 +
511 + if($wdkmembership_user_id) {
512 + if(!wdk_membership_subscription_booking_enabled($wdkmembership_user_id)) {
513 + $field_empty = false;
514 + }
515 + }
516 + } elseif($field_id == 'have_agency') {
517 + $field_empty = true;
518 + if(function_exists('run_wdk_membership') && file_exists(WDK_MEMBERSHIP_PATH.'application/models/Agency_agent_m.php')) {
519 + if(wdk_field_value ('user_id_editor', $wdk_listing_id)) {
520 + $agent_id = wdk_field_value ('user_id_editor', $wdk_listing_id);
521 + global $Winter_MVC_wdk_membership;
522 + $Winter_MVC_wdk_membership->model('agency_agent_m');
523 + $agent_agency = $Winter_MVC_wdk_membership->agency_agent_m->get_by(array('agent_id' => $agent_id, 'status' => 'CONFIRMED'), TRUE);
524 + if($agent_agency) {
525 + $user = wdk_get_user_data( wmvc_show_data('agency_id', $agent_agency, 0));
526 + if($user){
527 + $field_empty = false;
528 + }
529 + }
530 + }
531 + }
532 + } elseif($field_id == 'have_sublistings') {
533 +
534 + $field_empty = true;
535 + if(!empty(wdk_field_value('listing_related_ids', $wdk_listing_id))){
536 + foreach (explode(',',wdk_field_value('listing_related_ids', $wdk_listing_id)) as $key => $child_idlisting) {
537 + if(!wdk_field_value('is_activated', $child_idlisting) || !wdk_field_value('is_approved', $child_idlisting)) continue;
538 +
539 + $field_empty = false;
540 + break;
541 + }
542 + }
543 + } elseif($field_id == 'havent_images' || $field_id == 'have_images') {
544 + $images = wdk_field_value('listing_images', $wdk_listing_id);
545 + if($field_id == 'havent_images') {
546 + if($images){
547 + $field_empty = true;
548 + }
549 + } else if($field_id == 'have_images') {
550 + if(!$images){
551 + $field_empty = true;
552 + }
553 + }
554 + } elseif($field_id == 'havent_plan_images' || $field_id == 'have_plan_images') {
555 + $images = wdk_field_value('listing_plans_documents', $wdk_listing_id);
556 + if($field_id == 'havent_plan_images') {
557 + if($images){
558 + $field_empty = true;
559 + }
560 + } else if($field_id == 'have_plan_images') {
561 + if(!$images){
562 + $field_empty = true;
563 + }
564 + }
565 + } elseif(wdk_field_option($field_id, 'field_type') == "SECTION") {
566 +
298 567 // get all section fields
299 568 $sections_data = $WMVC->field_m->get_fields_section();
300 569
301 570 if(!isset($sections_data[$field_id]) || !isset($sections_data[$field_id]['fields']))return;
@@ -312,9 +581,74 @@
312 581 else
313 582 {
314 583 $field_value = wdk_field_value($field_id, $wdk_listing_id);
315 584
316 - if(empty($field_value))$field_empty = TRUE;
585 + if($field_id == 'membership_subscription_id_visitor') {
586 + if(get_current_user_id()) {
587 + $field_value = wdk_get_user_subscription_id(get_current_user_id());
588 + } else {
589 + $field_value = 0;
590 + }
591 + }
592 +
593 + if($field_id == 'membership_subscription_id_owner') {
594 + if(wdk_field_value('user_id_editor', $wdk_listing_id)) {
595 + $field_value = wdk_get_user_subscription_id(wdk_field_value('user_id_editor', $wdk_listing_id));
596 + } else {
597 + $field_value = 0;
598 + }
599 + }
600 +
601 + if(!empty($settings['wdk_related_compare_type'])) {
602 + switch ($settings['wdk_related_compare_type']) {
603 + case '==':
604 + if($field_value == $settings['wdk_related_compare_value']) {
605 + $field_empty = TRUE;
606 + }
607 + break;
608 + case '!=':
609 + if($field_value != $settings['wdk_related_compare_value']) {
610 + $field_empty = TRUE;
611 + }
612 + break;
613 + case '>':
614 + if($field_value > $settings['wdk_related_compare_value']) {
615 + $field_empty = TRUE;
616 + }
617 + break;
618 + case '<':
619 + if($field_value < $settings['wdk_related_compare_value']) {
620 + $field_empty = TRUE;
621 + }
622 + break;
623 + case 'in':
624 + // Accept comma separated values or array
625 + $compare_values = $settings['wdk_related_compare_value'];
626 + if (!is_array($compare_values)) {
627 + $compare_values = array_map('trim', explode(',', $compare_values));
628 + // dump($compare_values);
629 + }
630 + if (in_array($field_value, $compare_values)) {
631 + $field_empty = TRUE;
632 + }
633 + break;
634 + case '!in':
635 + // Accept comma separated values or array
636 + $compare_values = $settings['wdk_related_compare_value'];
637 + if (!is_array($compare_values)) {
638 + $compare_values = array_map('trim', explode(',', $compare_values));
639 + }
640 + if (!in_array($field_value, $compare_values)) {
641 + $field_empty = TRUE;
642 + }
643 + break;
644 + default:
645 + // No action
646 + break;
647 + }
648 + } else {
649 + if(empty($field_value))$field_empty = TRUE;
650 + }
317 651 }
318 652
319 653 if($field_empty)
320 654 {
@@ -332,14 +666,17 @@
332 666
333 667 public function _end_element( $element ) {
334 668 global $wdk_listing_id;
335 669
336 - if(Plugin::$instance->editor->is_edit_mode() || empty($wdk_listing_id))return;
670 + $wdkmembership_user_id = wdk_get_profile_page_id();
671 +
672 + //if(Plugin::$instance->editor->is_edit_mode())return;
673 + if(Plugin::$instance->editor->is_edit_mode() || (empty($wdk_listing_id) && empty($wdkmembership_user_id)))return;
337 674 //if(!in_array($element->get_name(), $this->supported_elements))return;
338 675
339 676 $WMVC = &wdk_get_instance();
340 677 $WMVC->model('field_m');
341 -
678 + $WMVC->load_helper('listing');
342 679 $settings = $element->get_settings_for_display();
343 680
344 681 if(isset($settings['wdk_related_field']) && !empty($settings['wdk_related_field']))
345 682 {
@@ -350,11 +687,165 @@
350 687 $field_id = substr($settings['wdk_related_field'], strpos($settings['wdk_related_field'],'__')+2);
351 688 }
352 689
353 690 if(is_null($field_id))return;
691 + if($field_id == 'show_on_get' || $field_id == 'hide_on_get') {
692 + if(!empty($settings['wdk_related_show_on_get_key']) && !empty($settings['wdk_related_show_on_get_value'])) {
693 + $get_val = null;
694 + if(isset($_GET[$settings['wdk_related_show_on_get_key']])){
695 + $get_val = sanitize_text_field($_GET[$settings['wdk_related_show_on_get_key']]);
696 + }
697 + if($field_id == 'hide_on_get') {
698 + if($get_val == $settings['wdk_related_show_on_get_value']){
699 + $field_empty = true;
700 + }
701 + } else if($field_id == 'show_on_get') {
702 + if($get_val !== $settings['wdk_related_show_on_get_value']){
703 + $field_empty = true;
704 + }
705 + }
706 + }
707 + }elseif($field_id == 'havent_wdk_rating' || $field_id == 'have_wdk_rating') {
708 + if(function_exists('run_wdk_reviews')) {
709 + global $Winter_MVC_wdk_reviews;
710 + $Winter_MVC_wdk_reviews->model('reviews_m');
711 + $generate_avg_total = null;
354 712
355 - if(wdk_field_option($field_id, 'field_type') == "SECTION") {
713 + if($wdkmembership_user_id) {
714 + $generate_avg_total = $Winter_MVC_wdk_reviews->reviews_m->generate_avg_total($wdkmembership_user_id);
715 + } else {
716 + $generate_avg_total = $Winter_MVC_wdk_reviews->reviews_m->generate_avg_total($wdk_listing_id);
717 + }
718 +
719 + if($field_id == 'havent_wdk_rating') {
720 + if($generate_avg_total && !empty($generate_avg_total['reviewers_total'])){
721 + $field_empty = true;
722 + }
723 + } else if($field_id == 'have_wdk_rating') {
724 + if(!$generate_avg_total || ($generate_avg_total && empty($generate_avg_total['reviewers_total']))){
725 + $field_empty = true;
726 + }
727 + }
728 + }
729 + }elseif($field_id == 'havent_calendar' || $field_id == 'have_calendar') {
730 + if(function_exists('run_wdk_bookings')) {
731 + global $Winter_MVC_wdk_bookings;
732 + $Winter_MVC_wdk_bookings->model('calendar_m');
733 + $calendar = $Winter_MVC_wdk_bookings->calendar_m->get_by(array('post_id' => $wdk_listing_id, 'is_activated' => 1));
734 + if($field_id == 'havent_calendar') {
735 + if($calendar){
736 + $field_empty = true;
737 + }
738 + } else if($field_id == 'have_calendar') {
739 + if(!$calendar){
740 + $field_empty = true;
741 + }
742 + }
743 + }
744 + } elseif($field_id == 'have_sublistings') {
356 745
746 + $field_empty = true;
747 + if(!empty(wdk_field_value('listing_related_ids', $wdk_listing_id))){
748 + foreach (explode(',',wdk_field_value('listing_related_ids', $wdk_listing_id)) as $key => $child_idlisting) {
749 + if(!wdk_field_value('is_activated', $child_idlisting) || !wdk_field_value('is_approved', $child_idlisting)) continue;
750 +
751 + $field_empty = false;
752 + break;
753 + }
754 + }
755 + } elseif($field_id == 'profile_have_listings') {
756 + $wdkmembership_user_id = wdk_get_profile_page_id();
757 + $field_empty = true;
758 +
759 +
760 + if($wdkmembership_user_id) {
761 + if(wdk_membership_subscription_booking_enabled($wdkmembership_user_id)) {
762 + $field_empty = false;
763 + }
764 + }
765 + } elseif($field_id == 'profile_nothave_membership') {
766 + $wdkmembership_user_id = wdk_get_profile_page_id();
767 + $field_empty = true;
768 +
769 + if($wdkmembership_user_id) {
770 + if(!wdk_membership_subscription_booking_enabled($wdkmembership_user_id)) {
771 + $field_empty = false;
772 + }
773 + }
774 + } elseif($field_id == 'have_agency') {
775 + $field_empty = true;
776 + if(function_exists('run_wdk_membership') && file_exists(WDK_MEMBERSHIP_PATH.'application/models/Agency_agent_m.php')) {
777 + if(wdk_field_value ('user_id_editor', $wdk_listing_id)) {
778 + $agent_id = wdk_field_value ('user_id_editor', $wdk_listing_id);
779 + global $Winter_MVC_wdk_membership;
780 + $Winter_MVC_wdk_membership->model('agency_agent_m');
781 + $agent_agency = $Winter_MVC_wdk_membership->agency_agent_m->get_by(array('agent_id' => $agent_id, 'status' => 'CONFIRMED'), TRUE);
782 + if($agent_agency) {
783 + $user = wdk_get_user_data( wmvc_show_data('agency_id', $agent_agency, 0));
784 + if($user){
785 + $field_empty = false;
786 + }
787 + }
788 + }
789 + }
790 + } elseif($field_id == 'profile_have_agency') {
791 + $wdkmembership_user_id = wdk_get_profile_page_id();
792 + $field_empty = true;
793 + if($wdkmembership_user_id) {
794 + $user = wdk_get_user_data($wdkmembership_user_id);
795 + if($user && wmvc_is_user_in_role($user['userdata'], 'wdk_agency')) {
796 + $field_empty = false;
797 + }
798 +
799 + }
800 + } elseif($field_id == 'profile_have_listings') {
801 + $wdkmembership_user_id = wdk_get_profile_page_id();
802 + $field_empty = true;
803 +
804 +
805 + if($wdkmembership_user_id) {
806 + $user = wdk_get_user_data($wdkmembership_user_id);
807 + $WMVC->model('listing_m');
808 + if($WMVC->listing_m->total(array('is_activated' => 1,'is_approved'=>1), TRUE, $wdkmembership_user_id, TRUE)) {
809 + $field_empty = false;
810 + }
811 + }
812 + } elseif($field_id == 'profile_nothave_listings') {
813 + $wdkmembership_user_id = wdk_get_profile_page_id();
814 + $field_empty = true;
815 +
816 +
817 + if($wdkmembership_user_id) {
818 + $user = wdk_get_user_data($wdkmembership_user_id);
819 + $WMVC->model('listing_m');
820 + if(!$WMVC->listing_m->total(array('is_activated' => 1,'is_approved'=>1), TRUE, $wdkmembership_user_id, TRUE)) {
821 + $field_empty = false;
822 + }
823 + }
824 + } elseif($field_id == 'havent_images' || $field_id == 'have_images') {
825 + $images = wdk_field_value('listing_images', $wdk_listing_id);
826 + if($field_id == 'havent_images') {
827 + if($images){
828 + $field_empty = true;
829 + }
830 + } else if($field_id == 'have_images') {
831 + if(!$images){
832 + $field_empty = true;
833 + }
834 + }
835 + } elseif($field_id == 'havent_plan_images' || $field_id == 'have_plan_images') {
836 + $images = wdk_field_value('listing_plans_documents', $wdk_listing_id);
837 + if($field_id == 'havent_plan_images') {
838 + if($images){
839 + $field_empty = true;
840 + }
841 + } else if($field_id == 'have_plan_images') {
842 + if(!$images){
843 + $field_empty = true;
844 + }
845 + }
846 + } elseif(wdk_field_option($field_id, 'field_type') == "SECTION") {
847 +
357 848 // get all section fields
358 849 $sections_data = $WMVC->field_m->get_fields_section();
359 850
360 851 if(!isset($sections_data[$field_id]) || !isset($sections_data[$field_id]['fields']))return;
@@ -371,9 +862,73 @@
371 862 else
372 863 {
373 864 $field_value = wdk_field_value($field_id, $wdk_listing_id);
374 865
375 - if(empty($field_value))$field_empty = TRUE;
866 + if($field_id == 'membership_subscription_id_visitor') {
867 + if(get_current_user_id()) {
868 + $field_value = wdk_get_user_subscription_id(get_current_user_id());
869 + } else {
870 + $field_value = 0;
871 + }
872 + }
873 +
874 + if($field_id == 'membership_subscription_id_owner') {
875 + if(wdk_field_value('user_id_editor', $wdk_listing_id)) {
876 + $field_value = wdk_get_user_subscription_id(wdk_field_value('user_id_editor', $wdk_listing_id));
877 + } else {
878 + $field_value = 0;
879 + }
880 + }
881 +
882 + if(!empty($settings['wdk_related_compare_type'])) {
883 + switch ($settings['wdk_related_compare_type']) {
884 + case '==':
885 + if($field_value == $settings['wdk_related_compare_value']) {
886 + $field_empty = TRUE;
887 + }
888 + break;
889 + case '!=':
890 + if($field_value != $settings['wdk_related_compare_value']) {
891 + $field_empty = TRUE;
892 + }
893 + break;
894 + case '>':
895 + if($field_value > $settings['wdk_related_compare_value']) {
896 + $field_empty = TRUE;
897 + }
898 + break;
899 + case '<':
900 + if($field_value < $settings['wdk_related_compare_value']) {
901 + $field_empty = TRUE;
902 + }
903 + break;
904 + case 'in':
905 + // Accept comma separated values or array
906 + $compare_values = $settings['wdk_related_compare_value'];
907 + if (!is_array($compare_values)) {
908 + $compare_values = array_map('trim', explode(',', $compare_values));
909 + }
910 + if (in_array($field_value, $compare_values)) {
911 + $field_empty = TRUE;
912 + }
913 + break;
914 + case '!in':
915 + // Accept comma separated values or array
916 + $compare_values = $settings['wdk_related_compare_value'];
917 + if (!is_array($compare_values)) {
918 + $compare_values = array_map('trim', explode(',', $compare_values));
919 + }
920 + if (!in_array($field_value, $compare_values)) {
921 + $field_empty = TRUE;
922 + }
923 + break;
924 + default:
925 + // No action
926 + break;
927 + }
928 + } else {
929 + if(empty($field_value))$field_empty = TRUE;
930 + }
376 931 }
377 932
378 933 if($field_empty)
379 934 {