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 +520 -19 1.2.3 → 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,20 +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');
239 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');
240 261 $fields_list [(++$order_i).'__have_calendar'] = esc_html__('Listing have calendar', 'wpdirectorykit');
241 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 +
242 274 $fields_list [(++$order_i).'__idlisting'] = esc_html__('Id listing', 'wpdirectorykit');
243 275 $fields_list [(++$order_i).'__post_id'] = esc_html__('Post Id', 'wpdirectorykit');
276 + $fields_allow_for_compare[] = ($order_i).'__post_id';
244 277 $fields_list [(++$order_i).'__lat'] = esc_html__('Gps Lat', 'wpdirectorykit');
245 278 $fields_list [(++$order_i).'__lng'] = esc_html__('Gps Lng', 'wpdirectorykit');
246 279 $fields_list [(++$order_i).'__date'] = esc_html__('Date', 'wpdirectorykit');
247 280 $fields_list [(++$order_i).'__date_modified'] = esc_html__('Date Modified', 'wpdirectorykit');
@@ -247,10 +280,11 @@
247 280 $fields_list [(++$order_i).'__date_modified'] = esc_html__('Date Modified', 'wpdirectorykit');
248 281 $fields_list [(++$order_i).'__post_content'] = esc_html__('WP Content', 'wpdirectorykit');
249 282 $fields_list [(++$order_i).'__address'] = esc_html__('Address', 'wpdirectorykit');
250 283 $fields_list [(++$order_i).'__category_id'] = esc_html__('Category', 'wpdirectorykit');
284 + $fields_allow_for_compare[] = ($order_i).'__category_id';
251 285 $fields_list [(++$order_i).'__location_id'] = esc_html__('Location', 'wpdirectorykit');
252 -
286 + $fields_allow_for_compare[] = ($order_i).'__location_id';
253 287 foreach($fields_data as $field)
254 288 {
255 289 if(wmvc_show_data('field_type', $field) == 'SECTION') {
256 290 $fields_list [(++$order_i).'section__'.wmvc_show_data('idfield', $field)] = '-- '.esc_html__('Section', 'wpdirectorykit').' '.wmvc_show_data('field_label', $field).' --';
@@ -255,12 +289,24 @@
255 289 if(wmvc_show_data('field_type', $field) == 'SECTION') {
256 290 $fields_list [(++$order_i).'section__'.wmvc_show_data('idfield', $field)] = '-- '.esc_html__('Section', 'wpdirectorykit').' '.wmvc_show_data('field_label', $field).' --';
257 291 } else {
258 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);
259 294 }
260 295 }
261 296
262 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(
263 309 'wdk_related_field',
264 310 [
265 311 'label' => esc_html__('WDK Related FIeld', 'wpdirectorykit'),
266 312 'type' => Controls_Manager::SELECT,
@@ -265,12 +311,71 @@
265 311 'label' => esc_html__('WDK Related FIeld', 'wpdirectorykit'),
266 312 'type' => Controls_Manager::SELECT,
267 313 'options' => $fields_list,
268 314 'default' => '',
269 - 'separator' => 'after',
315 + 'return_value' => 'section',
316 + 'frontend_available' => true,
317 + 'render_type' => 'none',
270 318 ]
271 319 );
272 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 +
273 378 $element->end_controls_section();
274 379
275 380 }
276 381
@@ -275,19 +380,22 @@
275 380 }
276 381
277 382 public function _start_element( $element ) {
278 383 global $wdk_listing_id;
384 + $wdkmembership_user_id = wdk_get_profile_page_id();
279 385
280 - 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;
281 388 //if(!in_array($element->get_name(), $this->supported_elements))return;
282 389
283 390 $WMVC = &wdk_get_instance();
284 391 $WMVC->model('field_m');
285 -
392 + $WMVC->load_helper('listing');
286 393 $settings = $element->get_settings_for_display();
287 -
394 +
288 395 if(isset($settings['wdk_related_field']) && !empty($settings['wdk_related_field']))
289 396 {
397 +
290 398 $field_id = NULL;
291 399 $field_value = NULL;
292 400 $field_empty = FALSE;
293 401 if(strpos($settings['wdk_related_field'], '__') !== FALSE){
@@ -292,16 +400,55 @@
292 400 $field_empty = FALSE;
293 401 if(strpos($settings['wdk_related_field'], '__') !== FALSE){
294 402 $field_id = substr($settings['wdk_related_field'], strpos($settings['wdk_related_field'],'__')+2);
295 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 + }
296 412
297 - if(is_null($field_id))return;
298 -
299 - if($field_id == 'havent_calendar' || $field_id == 'have_calendar') {
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;
428 +
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') {
300 447 if(function_exists('run_wdk_bookings')) {
301 448 global $Winter_MVC_wdk_bookings;
302 449 $Winter_MVC_wdk_bookings->model('calendar_m');
303 - $calendar = $Winter_MVC_wdk_bookings->calendar_m->get_by(array('post_id' => $wdk_listing_id));
450 + $calendar = $Winter_MVC_wdk_bookings->calendar_m->get_by(array('post_id' => $wdk_listing_id, 'is_activated' => 1));
304 451 if($field_id == 'havent_calendar') {
305 452 if($calendar){
306 453 $field_empty = true;
307 454 }
@@ -310,8 +457,79 @@
310 457 $field_empty = true;
311 458 }
312 459 }
313 460 }
461 + } elseif($field_id == 'profile_have_agency') {
462 + $wdkmembership_user_id = wdk_get_profile_page_id();
463 + $field_empty = true;
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 + }
314 532 } elseif($field_id == 'have_sublistings') {
315 533
316 534 $field_empty = true;
317 535 if(!empty(wdk_field_value('listing_related_ids', $wdk_listing_id))){
@@ -321,8 +539,30 @@
321 539 $field_empty = false;
322 540 break;
323 541 }
324 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 + }
325 565 } elseif(wdk_field_option($field_id, 'field_type') == "SECTION") {
326 566
327 567 // get all section fields
328 568 $sections_data = $WMVC->field_m->get_fields_section();
@@ -341,9 +581,74 @@
341 581 else
342 582 {
343 583 $field_value = wdk_field_value($field_id, $wdk_listing_id);
344 584
345 - 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 + }
346 651 }
347 652
348 653 if($field_empty)
349 654 {
@@ -361,14 +666,17 @@
361 666
362 667 public function _end_element( $element ) {
363 668 global $wdk_listing_id;
364 669
365 - 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;
366 674 //if(!in_array($element->get_name(), $this->supported_elements))return;
367 675
368 676 $WMVC = &wdk_get_instance();
369 677 $WMVC->model('field_m');
370 -
678 + $WMVC->load_helper('listing');
371 679 $settings = $element->get_settings_for_display();
372 680
373 681 if(isset($settings['wdk_related_field']) && !empty($settings['wdk_related_field']))
374 682 {
@@ -379,13 +687,51 @@
379 687 $field_id = substr($settings['wdk_related_field'], strpos($settings['wdk_related_field'],'__')+2);
380 688 }
381 689
382 690 if(is_null($field_id))return;
383 - if($field_id == 'havent_calendar' || $field_id == 'have_calendar') {
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;
712 +
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') {
384 730 if(function_exists('run_wdk_bookings')) {
385 731 global $Winter_MVC_wdk_bookings;
386 732 $Winter_MVC_wdk_bookings->model('calendar_m');
387 - $calendar = $Winter_MVC_wdk_bookings->calendar_m->get_by(array('post_id' => $wdk_listing_id));
733 + $calendar = $Winter_MVC_wdk_bookings->calendar_m->get_by(array('post_id' => $wdk_listing_id, 'is_activated' => 1));
388 734 if($field_id == 'havent_calendar') {
389 735 if($calendar){
390 736 $field_empty = true;
391 737 }
@@ -405,8 +751,99 @@
405 751 $field_empty = false;
406 752 break;
407 753 }
408 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 + }
409 846 } elseif(wdk_field_option($field_id, 'field_type') == "SECTION") {
410 847
411 848 // get all section fields
412 849 $sections_data = $WMVC->field_m->get_fields_section();
@@ -425,9 +862,73 @@
425 862 else
426 863 {
427 864 $field_value = wdk_field_value($field_id, $wdk_listing_id);
428 865
429 - 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 + }
430 931 }
431 932
432 933 if($field_empty)
433 934 {