| @@ -366,17 +366,35 @@ | ||
| 366 | 366 | 'label' => esc_html__( 'Number of Columns', 'shopbuilder' ), |
| 367 | 367 | 'description' => esc_html__( 'Please select the number of columns to show per row.', 'shopbuilder' ), |
| 368 | 368 | 'options' => ControlHelper::layout_columns(), |
| 369 | 369 | 'label_block' => true, |
| 370 | + 'render_type' => 'template', | |
| 370 | 371 | 'default' => '0', |
| 371 | 372 | 'tablet_default' => '2', |
| 372 | 373 | 'mobile_default' => '1', |
| 373 | 374 | 'required' => true, |
| 375 | + 'separator' => rtsb()->has_pro() ? 'default' : 'default elementor-control-separator-after', | |
| 374 | 376 | 'selectors' => [ |
| 375 | - $obj->selectors['columns']['cols'] => 'grid-template-columns: repeat({{VALUE}}, minmax(0, 1fr));', | |
| 377 | + $obj->selectors['columns']['cols'] => 'grid-template-columns: repeat({{VALUE}}, minmax(0, 1fr));', | |
| 378 | + $obj->selectors['columns']['masonry'] => '--rtsb-masonry-columns: {{VALUE}};', | |
| 379 | + $obj->selectors['columns']['list_masonry'] => '--rtsb-masonry-list-columns: {{VALUE}};', | |
| 376 | 380 | ], |
| 377 | 381 | ]; |
| 378 | 382 | |
| 383 | + $fields['grid_style'] = [ | |
| 384 | + 'type' => 'select2', | |
| 385 | + 'label' => esc_html__( 'Layout Grid Style', 'shopbuilder' ), | |
| 386 | + 'options' => [ | |
| 387 | + 'even' => esc_html__( 'Default', 'shopbuilder' ), | |
| 388 | + 'masonry' => esc_html__( 'Masonry', 'shopbuilder' ), | |
| 389 | + 'equal' => esc_html__( 'Equal Height', 'shopbuilder' ), | |
| 390 | + ], | |
| 391 | + 'label_block' => true, | |
| 392 | + 'default' => 'even', | |
| 393 | + 'description' => esc_html__( 'Please select the layout grid style.', 'shopbuilder' ), | |
| 394 | + 'classes' => $obj->pro_class(), | |
| 395 | + ]; | |
| 396 | + | |
| 379 | 397 | $fields['image_width'] = [ |
| 380 | 398 | 'type' => 'slider', |
| 381 | 399 | 'mode' => 'responsive', |
| 382 | 400 | 'label' => esc_html__( 'Image Width', 'shopbuilder' ), |
| @@ -392,11 +410,11 @@ | ||
| 392 | 410 | 'unit' => '%', |
| 393 | 411 | 'size' => 32, |
| 394 | 412 | ], |
| 395 | 413 | 'description' => esc_html__( 'Please select the image width in %.', 'shopbuilder' ), |
| 414 | + 'separator' => rtsb()->has_pro() ? 'default' : 'before', | |
| 396 | 415 | 'selectors' => [ |
| 397 | 416 | $obj->selectors['columns']['image_width']['image'] => 'flex-basis: {{SIZE}}{{UNIT}}; max-width: {{SIZE}}{{UNIT}};', |
| 398 | - // $obj->selectors['columns']['image_width']['content'] => 'flex-basis: calc(100% - {{SIZE}}{{UNIT}}); max-width: calc(100% - {{SIZE}}{{UNIT}});', | |
| 399 | 417 | ], |
| 400 | 418 | 'condition' => [ 'layout' => [ 'list-layout1', 'list-layout2', 'list-layout3', 'list-layout4','list-layout5','list-layout6','list-layout7' ] ], |
| 401 | 419 | ]; |
| 402 | 420 | |
| @@ -441,25 +459,8 @@ | ||
| 441 | 459 | ], |
| 442 | 460 | 'condition' => [ 'layout' => [ 'list-layout3' ] ], |
| 443 | 461 | ]; |
| 444 | 462 | |
| 445 | - // Todo: Need to add later. | |
| 446 | - /* | |
| 447 | - $fields['grid_style'] = [ | |
| 448 | - 'type' => 'select2', | |
| 449 | - 'label' => esc_html__( 'Grid Style', 'shopbuilder' ), | |
| 450 | - 'options' => [ | |
| 451 | - 'even' => esc_html__( 'Even', 'shopbuilder' ), | |
| 452 | - 'masonry' => esc_html__( 'Masonry', 'shopbuilder' ), | |
| 453 | - 'equal' => esc_html__( 'Equal Height', 'shopbuilder' ), | |
| 454 | - ], | |
| 455 | - 'label_block' => true, | |
| 456 | - 'default' => 'even', | |
| 457 | - 'description' => esc_html__( 'Please select the grid style.', 'shopbuilder' ), | |
| 458 | - 'classes' => $obj->pro_class(), | |
| 459 | - ]; | |
| 460 | - */ | |
| 461 | - | |
| 462 | 463 | return apply_filters( 'rtsb/elements/elementor/columns_control', $fields, $obj ); |
| 463 | 464 | } |
| 464 | 465 | |
| 465 | 466 | /** |
| @@ -516,8 +517,19 @@ | ||
| 516 | 517 | 'required' => true, |
| 517 | 518 | 'classes' => $obj->pro_class(), |
| 518 | 519 | ]; |
| 519 | 520 | |
| 521 | + $fields['grid_style'] = [ | |
| 522 | + 'type' => 'select', | |
| 523 | + 'label' => esc_html__( 'Layout Grid Style', 'shopbuilder' ), | |
| 524 | + 'options' => [ | |
| 525 | + 'even' => esc_html__( 'Default', 'shopbuilder' ), | |
| 526 | + ], | |
| 527 | + 'label_block' => true, | |
| 528 | + 'default' => 'even', | |
| 529 | + 'description' => esc_html__( 'Please select the layout grid style.', 'shopbuilder' ), | |
| 530 | + ]; | |
| 531 | + | |
| 520 | 532 | $fields['image_width'] = [ |
| 521 | 533 | 'type' => 'slider', |
| 522 | 534 | 'mode' => 'responsive', |
| 523 | 535 | 'label' => esc_html__( 'Image Width', 'shopbuilder' ), |
| @@ -535,9 +547,8 @@ | ||
| 535 | 547 | ], |
| 536 | 548 | 'description' => esc_html__( 'Please select the image width in %.', 'shopbuilder' ), |
| 537 | 549 | 'selectors' => [ |
| 538 | 550 | $obj->selectors['columns']['image_width']['image'] => 'flex-basis: {{SIZE}}{{UNIT}}; max-width: {{SIZE}}{{UNIT}} !important;', |
| 539 | - // $obj->selectors['columns']['image_width']['content'] => 'flex-basis: calc(100% - {{SIZE}}{{UNIT}}); max-width: calc(100% - {{SIZE}}{{UNIT}});', | |
| 540 | 551 | ], |
| 541 | 552 | 'condition' => [ 'layout' => [ 'slider-layout5' ] ], |
| 542 | 553 | ]; |
| 543 | 554 | |
| @@ -627,9 +638,9 @@ | ||
| 627 | 638 | 'label_block' => true, |
| 628 | 639 | 'minimum_input_length' => 1, |
| 629 | 640 | ]; |
| 630 | 641 | |
| 631 | - $fields['filter_tags'] = [ | |
| 642 | + $fields['filter_tags'] = [ | |
| 632 | 643 | 'type' => 'rt-select2', |
| 633 | 644 | 'label' => esc_html__( 'Filter By Tags', 'shopbuilder' ), |
| 634 | 645 | 'description' => esc_html__( 'Select the tags you want to filter, Leave it blank for all tags.', 'shopbuilder' ), |
| 635 | 646 | 'source_name' => 'taxonomy', |
| @@ -637,8 +648,18 @@ | ||
| 637 | 648 | 'multiple' => true, |
| 638 | 649 | 'label_block' => true, |
| 639 | 650 | 'minimum_input_length' => 1, |
| 640 | 651 | ]; |
| 652 | + $fields['filter_brands'] = [ | |
| 653 | + 'type' => 'rt-select2', | |
| 654 | + 'label' => esc_html__( 'Filter By Brand', 'shopbuilder' ), | |
| 655 | + 'description' => esc_html__( 'Select the tags you want to filter, Leave it blank for all brands.', 'shopbuilder' ), | |
| 656 | + 'source_name' => 'taxonomy', | |
| 657 | + 'source_type' => 'product_brand', | |
| 658 | + 'multiple' => true, | |
| 659 | + 'label_block' => true, | |
| 660 | + 'minimum_input_length' => 1, | |
| 661 | + ]; | |
| 641 | 662 | |
| 642 | 663 | $fields['filter_attributes'] = [ |
| 643 | 664 | 'type' => 'select2', |
| 644 | 665 | 'label' => esc_html__( 'Filter By Attributes', 'shopbuilder' ), |
| @@ -645,9 +666,8 @@ | ||
| 645 | 666 | 'description' => esc_html__( 'Select the attributes you want to filter, Leave it blank for all attributes.', 'shopbuilder' ), |
| 646 | 667 | 'options' => Fns::get_all_attributes(), |
| 647 | 668 | 'multiple' => true, |
| 648 | 669 | 'label_block' => true, |
| 649 | - 'condition' => [ 'tax_filter!' => [ 'yes' ] ], | |
| 650 | 670 | ]; |
| 651 | 671 | |
| 652 | 672 | $fields['tax_relation'] = [ |
| 653 | 673 | 'type' => 'select2', |
| @@ -656,9 +676,8 @@ | ||
| 656 | 676 | 'OR' => 'Show All Products (OR)', |
| 657 | 677 | 'AND' => 'Show Common Products (AND)', |
| 658 | 678 | ], |
| 659 | 679 | 'default' => 'AND', |
| 660 | - 'description' => esc_html__( 'Select the taxonomies relationship. It is applicable if you select more than one taxonomy.', 'shopbuilder' ), | |
| 661 | 680 | 'label_block' => true, |
| 662 | 681 | ]; |
| 663 | 682 | |
| 664 | 683 | $fields['advanced_note'] = $obj->el_heading( esc_html__( 'Advanced Filters', 'shopbuilder' ), 'before' ); |
| @@ -693,9 +712,13 @@ | ||
| 693 | 712 | 'default' => 'date', |
| 694 | 713 | ]; |
| 695 | 714 | |
| 696 | 715 | if ( rtsb()->has_pro() ) { |
| 697 | - $fields['posts_order_by']['condition'] = [ 'products_filter' => 'recent' ]; | |
| 716 | + $fields['products_filter']['condition'] = [ 'ajax_filter_type' => [ 'taxonomy' ] ]; | |
| 717 | + $fields['posts_order_by']['condition'] = [ | |
| 718 | + 'ajax_filter_type' => [ 'taxonomy' ], | |
| 719 | + 'products_filter' => 'recent', | |
| 720 | + ]; | |
| 698 | 721 | } |
| 699 | 722 | |
| 700 | 723 | $fields['posts_order'] = [ |
| 701 | 724 | 'type' => 'select2', |
| @@ -761,8 +784,10 @@ | ||
| 761 | 784 | * |
| 762 | 785 | * @return array |
| 763 | 786 | */ |
| 764 | 787 | public static function cat_single_query( $obj ) { |
| 788 | + $all_tag_list = Fns::get_tax_list(); | |
| 789 | + unset( $all_tag_list['product_attr'] ); | |
| 765 | 790 | $fields['query_section'] = $obj->start_section( |
| 766 | 791 | esc_html__( 'Query', 'shopbuilder' ), |
| 767 | 792 | self::$tab |
| 768 | 793 | ); |
| @@ -769,9 +794,9 @@ | ||
| 769 | 794 | |
| 770 | 795 | $fields['select_source'] = [ |
| 771 | 796 | 'type' => 'select2', |
| 772 | 797 | 'label' => esc_html__( 'Select Taxonomy', 'shopbuilder' ), |
| 773 | - 'options' => Fns::get_tax_list(), | |
| 798 | + 'options' => $all_tag_list, | |
| 774 | 799 | 'description' => esc_html__( 'Please select the taxonomy.', 'shopbuilder' ), |
| 775 | 800 | 'label_block' => true, |
| 776 | 801 | 'default' => 'product_cat', |
| 777 | 802 | ]; |
| @@ -788,9 +813,9 @@ | ||
| 788 | 813 | 'select_source' => [ 'product_cat' ], |
| 789 | 814 | ], |
| 790 | 815 | ]; |
| 791 | 816 | |
| 792 | - $fields['select_tag'] = [ | |
| 817 | + $fields['select_tag'] = [ | |
| 793 | 818 | 'type' => 'rt-select2', |
| 794 | 819 | 'label' => esc_html__( 'Choose Tag', 'shopbuilder' ), |
| 795 | 820 | 'source_name' => 'taxonomy', |
| 796 | 821 | 'source_type' => 'product_tag', |
| @@ -800,8 +825,20 @@ | ||
| 800 | 825 | 'condition' => [ |
| 801 | 826 | 'select_source' => [ 'product_tag' ], |
| 802 | 827 | ], |
| 803 | 828 | ]; |
| 829 | + $fields['select_brand'] = [ | |
| 830 | + 'type' => 'rt-select2', | |
| 831 | + 'label' => esc_html__( 'Choose Brand', 'shopbuilder' ), | |
| 832 | + 'source_name' => 'taxonomy', | |
| 833 | + 'source_type' => 'product_brand', | |
| 834 | + 'description' => esc_html__( 'Please select the brand to show.', 'shopbuilder' ), | |
| 835 | + 'label_block' => true, | |
| 836 | + 'minimum_input_length' => 1, | |
| 837 | + 'condition' => [ | |
| 838 | + 'select_source' => [ 'product_brand' ], | |
| 839 | + ], | |
| 840 | + ]; | |
| 804 | 841 | |
| 805 | 842 | $fields['query_section_end'] = $obj->end_section(); |
| 806 | 843 | |
| 807 | 844 | return apply_filters( 'rtsb/elements/elementor/cat_single_query_control', $fields, $obj ); |
| @@ -969,9 +1006,9 @@ | ||
| 969 | 1006 | $fields['pagination_per_page'] = [ |
| 970 | 1007 | 'type' => 'number', |
| 971 | 1008 | 'label' => esc_html__( 'Number of Posts Per Page', 'shopbuilder' ), |
| 972 | 1009 | 'default' => 8, |
| 973 | - 'description' => esc_html__( 'Please enter the number of team members per page to show.', 'shopbuilder' ), | |
| 1010 | + 'description' => esc_html__( 'Please enter the number of products per page to show.', 'shopbuilder' ), | |
| 974 | 1011 | 'condition' => [ 'show_pagination' => [ 'yes' ] ], |
| 975 | 1012 | ]; |
| 976 | 1013 | |
| 977 | 1014 | $pagination_description = esc_html__( 'Please choose the pagination type', 'shopbuilder' ); |
| @@ -976,9 +1013,10 @@ | ||
| 976 | 1013 | |
| 977 | 1014 | $pagination_description = esc_html__( 'Please choose the pagination type', 'shopbuilder' ); |
| 978 | 1015 | |
| 979 | 1016 | if ( ! rtsb()->has_pro() ) { |
| 980 | - $pagination_description = __( 'Please choose the pagination type.<span class="elementor-pro-notice"><a target="_blank" href="' . esc_url( rtsb()->pro_version_link() ) . '">Upgrade to PRO</a> to unlock Load More and Ajax Pagination.</span>', 'shopbuilder' ); | |
| 1017 | + $upgrade_link = '<span class="elementor-pro-notice"><a target="_blank" href="' . esc_url( rtsb()->pro_version_link() ) . '">Upgrade to PRO</a> to unlock Load More and Ajax Pagination.</span>'; | |
| 1018 | + $pagination_description .= $upgrade_link; | |
| 981 | 1019 | } |
| 982 | 1020 | |
| 983 | 1021 | $fields['pagination_type'] = [ |
| 984 | 1022 | 'type' => 'select', |
| @@ -1015,10 +1053,10 @@ | ||
| 1015 | 1053 | ]; |
| 1016 | 1054 | |
| 1017 | 1055 | $fields['tax_filter'] = [ |
| 1018 | 1056 | 'type' => 'switch', |
| 1019 | - 'label' => esc_html__( 'Enable Taxonomy Filter Button?', 'shopbuilder' ), | |
| 1020 | - 'description' => esc_html__( 'Switch on to enable taxonomy filter button.', 'shopbuilder' ), | |
| 1057 | + 'label' => esc_html__( 'Enable Ajax Tab Filter Buttons?', 'shopbuilder' ), | |
| 1058 | + 'description' => esc_html__( 'Switch on to enable Ajax tab filter buttons.', 'shopbuilder' ), | |
| 1021 | 1059 | 'label_on' => esc_html__( 'On', 'shopbuilder' ), |
| 1022 | 1060 | 'label_off' => esc_html__( 'Off', 'shopbuilder' ), |
| 1023 | 1061 | 'separator' => $obj->pro_class(), |
| 1024 | 1062 | 'classes' => $obj->pro_class(), |