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/Builder/BuilderCpt.php +24 -45 2.2.02.1.3 View file →
@@ -8,9 +8,8 @@
8 8 namespace RadiusTheme\SB\Controllers\Builder;
9 9
10 10 defined( 'ABSPATH' ) || exit();
11 11
12 -use RadiusTheme\SB\Models\TemplateSettings;
13 12 use WP_Query;
14 13 use RadiusTheme\SB\Helpers\Fns;
15 14 use RadiusTheme\SB\Helpers\BuilderFns;
16 15 use RadiusTheme\SB\Traits\SingletonTrait;
@@ -37,12 +36,13 @@
37 36 add_action( 'pre_get_posts', [ $this, 'sortable_columns_query' ] );
38 37 add_filter( 'template_include', [ $this, 'builder_template' ], 99 );
39 38
40 39 add_filter( 'parse_query', [ $this, 'query_filter' ] );
41 - // add filter for search.
40 + // add filter for search
42 41 add_action( 'restrict_manage_posts', [ $this, 'add_filter' ] );
43 42
44 43 add_action( 'in_admin_header', [ $this, 'remove_all_notices' ], 1000 );
44 +
45 45 }
46 46
47 47
48 48 /**
@@ -54,12 +54,12 @@
54 54 public function add_filter() {
55 55
56 56 global $typenow;
57 57
58 - if ( BuilderFns::$post_type_tb != $typenow ) {
58 + if ( $typenow != BuilderFns::$post_type_tb ) {
59 59 return;
60 60 }
61 - // phpcs:ignore WordPress.Security.NonceVerification.Recommended
61 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended. No need nonce.
62 62 $selected = isset( $_GET['type'] ) ? sanitize_key( $_GET['type'] ) : '';
63 63 $builder_page_types = BuilderFns::builder_page_types();
64 64 ?>
65 65 <select name="template_type" id="type">
@@ -68,8 +68,9 @@
68 68 <option value="<?php echo esc_attr( $key ); ?>" <?php selected( $key, $selected ); ?>><?php echo esc_html( $value ); ?></option>
69 69 <?php } ?>
70 70 </select>
71 71 <?php
72 +
72 73 }
73 74
74 75 /**
75 76 * Post type function
@@ -141,8 +142,9 @@
141 142 register_post_type( BuilderFns::$post_type_tb, $tb_args );
142 143
143 144 // Flash rewrite rules.
144 145 $this->flush_rewrite_rules();
146 +
145 147 }
146 148
147 149 /**
148 150 * Flush rewrite
@@ -187,16 +189,16 @@
187 189 *
188 190 * @return void
189 191 */
190 192 public function custom_columns( $column, $post_id ) {
191 - $post_id = absint( $post_id );
192 - $types = BuilderFns::builder_page_types();
193 - $template_type = BuilderFns::builder_type( $post_id ) ? BuilderFns::builder_type( $post_id ) : array_key_first( $types );
193 + $post_id = absint( $post_id );
194 + $types = BuilderFns::builder_page_types();
195 + $type = BuilderFns::builder_type( $post_id ) ? BuilderFns::builder_type( $post_id ) : array_key_first( $types );
194 196
195 197 switch ( $column ) {
196 198 case 'type':
197 - $the_type = ! empty( $types[ $template_type ] ) ? '<b>' . esc_html( ucwords( $types[ $template_type ] ) ) . '</b>' : '';
198 - Fns::print_html( apply_filters( 'rtsb/columns/template/types/text', $the_type, $template_type, $post_id ) );
199 + $the_type = ! empty( $types[ $type ] ) ? esc_html( ucwords( $types[ $type ] ) ) : '';
200 + echo apply_filters( 'rtsb/columns/template/types/text', $the_type, $type, $post_id );
199 201 break;
200 202 case 'edit_with':
201 203 $edit_by = Fns::page_edit_with( $post_id );
202 204 echo esc_html( ucfirst( $edit_by ) );
@@ -201,42 +203,20 @@
201 203 $edit_by = Fns::page_edit_with( $post_id );
202 204 echo esc_html( ucfirst( $edit_by ) );
203 205 break;
204 206 case 'set_default':
205 - $is_set_default = absint( BuilderFns::builder_page_id_by_type( $template_type ) );
207 + $is_set_default = absint( BuilderFns::builder_page_id_by_type( $type ) );
206 208 $is_published = 'publish' === get_post_status( $post_id );
207 - $page_type_for = $template_type;
208 - if ( 'product' === $template_type ) {
209 - $product_page_for = get_post_meta( $post_id, '_is_product_page_template_for', true );
210 - switch ( $product_page_for ) {
211 - case 'specific_products':
212 - $page_type_for = 'template-' . $post_id . '-specific-products';
213 - $set_default = BuilderFns::get_specific_product_as_default( $post_id );
214 - if ( $set_default ) {
215 - $is_set_default = $post_id;
216 - }
217 - break;
218 - case 'product_cats':
219 - $page_type_for = 'product-page-template-' . $post_id . '-specific-category';
220 - $set_default_option_name = BuilderFns::option_name_product_page_specific_cat_set_default( $post_id );
221 - $pp_cat_set_default = TemplateSettings::instance()->get_option( $set_default_option_name );
222 - if ( $pp_cat_set_default ) {
223 - $is_set_default = $post_id;
224 - }
225 - break;
226 - case 'product_tags':
227 - $page_type_for = 'product-page-template-' . $post_id . '-specific-tag';
228 - $set_default_option_name = BuilderFns::option_name_product_page_specific_tag_set_default( $post_id );
229 - $pp_tag_set_default = TemplateSettings::instance()->get_option( $set_default_option_name );
230 - if ( $pp_tag_set_default ) {
231 - $is_set_default = $post_id;
232 - }
233 - break;
234 - default:
235 - break;
209 + $page_type_for = $type;
210 + if ( 'product' === $type ) {
211 + $product_ids = apply_filters( 'rtsb/product/page/builder/selected/products', [], $post_id );
212 + $set_default = BuilderFns::get_specific_product_as_default( $post_id );
213 + if ( ! empty( $product_ids ) && $set_default ) {
214 + $is_set_default = $post_id;
215 + $page_type_for = 'template-' . $post_id . '-specific-products';
236 216 }
237 - } elseif ( 'archive' === $template_type ) {
238 - $categories_name = apply_filters( 'rtsb/template/builder/selected/categories', [], $post_id, $template_type );
217 + } elseif ( 'archive' === $type ) {
218 + $categories_name = apply_filters( 'rtsb/archive/page/builder/selected/categories', [], $post_id );
239 219 $set_default = BuilderFns::get_specific_category_as_default( $post_id );
240 220 if ( ! empty( $categories_name ) && $set_default ) {
241 221 $is_set_default = $post_id;
242 222 $page_type_for = 'template-' . $post_id . '-specific-category';
@@ -244,10 +224,10 @@
244 224 }
245 225 ?>
246 226 <span class="rtsb-switch-wrapper page-type-<?php echo esc_attr( $page_type_for ); ?>" <?php echo ! $is_published ? 'style="pointer-events: none;"' : null; ?> title="<?php esc_html_e( 'Only publish post can set default ', 'shopbuilder' ); ?>">
247 227 <label class="rtsb-switch">
248 - <?php do_action( 'rtsb/set/default/column/extra/field', $post_id, $template_type, $is_set_default, $is_published ); ?>
249 - <div class="rtsb_template_type" data-template_type="<?php echo esc_attr( $template_type ); ?>" style='display:none;'></div>
228 + <?php do_action( 'rtsb/set/default/column/extra/field', $post_id, $type, $is_set_default, $is_published ); ?>
229 + <div class="rtsb_template_type" data-template_type="<?php echo esc_attr( $type ); ?>" style='display:none;'></div>
250 230 <input disabled="disabled" value="<?php echo absint( $post_id ); ?>" class="rtsb_set_default" name="set_default" type="checkbox" <?php echo esc_attr( $post_id === $is_set_default ? 'checked' : '' ); ?> >
251 231 <span class="rtsb-slider rtsb-round ">
252 232 <span class="rtsb-loader"></span>
253 233 </span>
@@ -311,14 +291,13 @@
311 291
312 292 if ( ! is_admin() || ! $this->is_current_screen() || ! empty( $query->query_vars['meta_key'] ) ) {
313 293 return;
314 294 }
315 - // phpcs:ignore WordPress.Security.NonceVerification.Recommended
316 295 $type = isset( $_GET['template_type'] ) ? sanitize_key( $_GET['template_type'] ) : '';
317 296
318 297 if ( '' != $type && 'all' != $type ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
319 298 $query->query_vars['meta_key'] = BuilderFns::template_type_meta_key(); // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_key
320 - $query->query_vars['meta_value'] = $type; // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_value
299 + $query->query_vars['meta_value'] = $type;
321 300 $query->query_vars['meta_compare'] = '=';
322 301 }
323 302 }
324 303