PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 2.1.3
ShopBuilder – WooCommerce Builder For Elementor v2.1.3
3.4.2 3.4.1 3.4.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 All 63 releases
← All changes | app/Controllers/BuilderController.php +25 -48 2.2.12.1.3 View file →
@@ -69,13 +69,13 @@
69 69 add_action( 'elementor/editor/before_enqueue_scripts', [ $this, 'editor_scripts' ] );
70 70 // add_action( 'template_redirect', [ $this, 'both_builder_frontend' ], 99 );
71 71
72 72 // RT Select2 Ajax.
73 - add_action( 'wp_ajax_rtsb_select2_object_search', [ $this, 'select2_ajax_posts_filter_autocomplete' ] );
74 - add_action( 'wp_ajax_nopriv_rtsb_select2_object_search', [ $this, 'select2_ajax_posts_filter_autocomplete' ] );
73 + add_action( 'wp_ajax_rt_select2_object_search', [ $this, 'select2_ajax_posts_filter_autocomplete' ] );
74 + add_action( 'wp_ajax_nopriv_rt_select2_object_search', [ $this, 'select2_ajax_posts_filter_autocomplete' ] );
75 75 // Select2 ajax save data.
76 - add_action( 'wp_ajax_rtsb_select2_get_title', [ $this, 'select2_ajax_get_posts_value_titles' ] );
77 - add_action( 'wp_ajax_nopriv_rtsb_select2_get_title', [ $this, 'select2_ajax_get_posts_value_titles' ] );
76 + add_action( 'wp_ajax_rt_select2_get_title', [ $this, 'select2_ajax_get_posts_value_titles' ] );
77 + add_action( 'wp_ajax_nopriv_rt_select2_get_title', [ $this, 'select2_ajax_get_posts_value_titles' ] );
78 78 }
79 79
80 80 /**
81 81 * Apply for frontend.
@@ -107,29 +107,21 @@
107 107 *
108 108 * @return void
109 109 */
110 110 public function add_elementor_widget_categories( $elements_manager ) {
111 - $categories = [];
112 - $builder_id = get_queried_object_id();
113 - $id = Fns::wpml_object_id( $builder_id, BuilderFns::$post_type_tb, 'default' );
114 - $type = BuilderFns::builder_type( $id );
111 + $type = BuilderFns::builder_type( get_the_ID() );
112 + $builder_type = ! empty( BuilderFns::builder_page_types()[ $type ] ) ? BuilderFns::builder_page_types()[ $type ] : '';
113 + $builder_type = str_replace( 'My Account - ', '', $builder_type );
114 + $categories['rtsb-shopbuilder'] = [
115 + 'title' => esc_html__( 'ShopBuilder', 'shopbuilder' ) . ' - ' . ucfirst( $builder_type ),
116 + 'icon' => 'fa fa-plug',
117 + ];
118 + $categories['rtsb-shopbuilder-general'] = [
119 + 'title' => esc_html__( 'Shopbuilder - General', 'shopbuilder' ),
120 + 'icon' => 'fa fa-plug',
121 + ];
115 122
116 - if ( $type ) {
117 - $builder_type = ! empty( BuilderFns::builder_page_types()[ $type ] ) ? BuilderFns::builder_page_types()[ $type ] : '';
118 - $builder_type = str_replace( [ 'My Account - ', 'Endpoint: ' ], '', $builder_type );
119 - $categories['rtsb-shopbuilder'] = [
120 - 'title' => esc_html__( 'ShopBuilder', 'shopbuilder' ) . ' - ' . ucfirst( $builder_type ),
121 - 'icon' => 'fa fa-plug',
122 - ];
123 - }
124 - if ( 'quick-view' !== $type ) {
125 - $categories['rtsb-shopbuilder-general'] = [
126 - 'title' => esc_html__( 'Shopbuilder - General', 'shopbuilder' ),
127 - 'icon' => 'fa fa-plug',
128 - ];
129 - }
130 - $categories = apply_filters( 'rtsb_elementor_widgets_category_lists', $categories );
131 -
123 + $categories = apply_filters( 'rtsb_elementor_widgets_category_lists', $categories );
132 124 $other_categories = $elements_manager->get_categories();
133 125 $categories = array_merge(
134 126 array_slice( $other_categories, 0, 1 ),
135 127 $categories,
@@ -135,10 +127,10 @@
135 127 $categories,
136 128 array_slice( $other_categories, 1 )
137 129 );
138 130
139 - $set_categories = function ( $categories ) use ( $elements_manager ) {
140 - $elements_manager->categories = $categories;
131 + $set_categories = function ( $categories ) {
132 + $this->categories = $categories;
141 133 };
142 134
143 135 $set_categories->call( $elements_manager, $categories );
144 136 }
@@ -230,9 +222,9 @@
230 222 *
231 223 * @return array
232 224 */
233 225 public function rtsb_icons( $tabs = [] ) {
234 - $custom_icons = Fns::get_custom_icon_names();
226 + $custom_icons = $this->get_icons();
235 227
236 228 $tabs['shopbuilder-icons'] = [
237 229 'name' => 'rtsb-fonts',
238 230 'label' => esc_html__( 'ShopBuilder Icons', 'shopbuilder' ),
@@ -297,18 +289,8 @@
297 289
298 290 if ( BuilderFns::is_product() ) {
299 291 $product_id = Fns::get_prepared_product_id();
300 292 $parent_class = wc_get_product_class( $parent_class, $product_id );
301 - if ( function_exists( 'rtwpvs' ) ) {
302 - $_product = Fns::get_product();
303 - if ( $_product->is_type( 'variable' ) ) {
304 - $parent_class[] = 'rtwpvs-product';
305 - $beside_label = function_exists( 'rtwpvsp' ) && rtwpvs()->get_option( 'attribute_on_click_behavior' );
306 - if ( $beside_label ) {
307 - $parent_class[] = 'rtwpvs-selected-term-beside-label';
308 - }
309 - }
310 - }
311 293 }
312 294
313 295 if ( BuilderFns::is_shop() ) {
314 296 $parent_class[] = 'shop';
@@ -372,15 +354,14 @@
372 354 *
373 355 * @return void
374 356 */
375 357 public function select2_ajax_posts_filter_autocomplete() {
376 - if ( ! wp_verify_nonce( Fns::get_nonce(), rtsb()->nonceText ) ) {
377 - wp_send_json_error( [] );
378 - }
358 +
379 359 $query_per_page = 15;
380 360 $post_type = 'post';
381 361 $source_name = 'post_type';
382 - $paged = absint( $_POST['page'] ?? 1 );
362 + $paged = $_POST['page'] ?? 1;
363 +
383 364 if ( ! empty( $_POST['post_type'] ) ) {
384 365 $post_type = sanitize_text_field( $_POST['post_type'] );
385 366 }
386 367
@@ -448,12 +429,8 @@
448 429 * @return void
449 430 */
450 431 public function select2_ajax_get_posts_value_titles() {
451 432
452 - if ( ! wp_verify_nonce( Fns::get_nonce(), rtsb()->nonceText ) ) {
453 - wp_send_json_error( [] );
454 - }
455 -
456 433 if ( empty( $_POST['id'] ) ) {
457 434 wp_send_json_error( [] );
458 435 }
459 436
@@ -552,9 +529,9 @@
552 529 $where .= $wpdb->prepare( " AND {$wpdb->posts}.post_title LIKE %s", '%' . esc_sql( $search ) . '%' );
553 530 }
554 531
555 532 $query = "select post_title,ID from $wpdb->posts where post_status = 'publish' {$where} {$limit}";
556 - $results = $wpdb->get_results( $query ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching
533 + $results = $wpdb->get_results( $query );
557 534
558 535 if ( ! empty( $results ) ) {
559 536 foreach ( $results as $row ) {
560 537 $data[ $row->ID ] = $row->post_title . ' [#' . $row->ID . ']';
@@ -585,10 +562,10 @@
585 562
586 563 $pro_widgets = [
587 564 [
588 565 'name' => 'rtsb-ajax-product-filters',
589 - 'title' => esc_html__( 'Ajax Product Filters', 'shopbuilder' ),
590 - 'description' => esc_html__( 'Ajax Product Filters', 'shopbuilder' ),
566 + 'title' => esc_html__( 'Ajax Product Filters', 'testimonial-slider-showcase' ),
567 + 'description' => esc_html__( 'Ajax Product Filters', 'testimonial-slider-showcase' ),
591 568 'icon' => 'rtsb-el-custom rtsb-element icon-rtsb-ajax-product-filters rtsb-promotional-element',
592 569 'categories' => '[ "rtsb-shopbuilder" ]',
593 570 ],
594 571 ];