PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 2.0.0
ShopBuilder – WooCommerce Builder For Elementor v2.0.0
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 +29 -51 2.2.02.0.0 View file →
@@ -8,13 +8,11 @@
8 8 namespace RadiusTheme\SB\Controllers\Builder;
9 9
10 10 defined( 'ABSPATH' ) || exit();
11 11
12 -use RadiusTheme\SB\Models\TemplateSettings;
13 -use WP_Query;
12 +use RadiusTheme\SB\Traits\SingletonTrait;
14 13 use RadiusTheme\SB\Helpers\Fns;
15 14 use RadiusTheme\SB\Helpers\BuilderFns;
16 -use RadiusTheme\SB\Traits\SingletonTrait;
17 15
18 16 /**
19 17 * Builder Custom post type
20 18 */
@@ -37,12 +35,13 @@
37 35 add_action( 'pre_get_posts', [ $this, 'sortable_columns_query' ] );
38 36 add_filter( 'template_include', [ $this, 'builder_template' ], 99 );
39 37
40 38 add_filter( 'parse_query', [ $this, 'query_filter' ] );
41 - // add filter for search.
39 + // add filter for search
42 40 add_action( 'restrict_manage_posts', [ $this, 'add_filter' ] );
43 41
44 42 add_action( 'in_admin_header', [ $this, 'remove_all_notices' ], 1000 );
43 +
45 44 }
46 45
47 46
48 47 /**
@@ -54,12 +53,12 @@
54 53 public function add_filter() {
55 54
56 55 global $typenow;
57 56
58 - if ( BuilderFns::$post_type_tb != $typenow ) {
57 + if ( $typenow != BuilderFns::$post_type_tb ) {
59 58 return;
60 59 }
61 - // phpcs:ignore WordPress.Security.NonceVerification.Recommended
60 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended. No need nonce.
62 61 $selected = isset( $_GET['type'] ) ? sanitize_key( $_GET['type'] ) : '';
63 62 $builder_page_types = BuilderFns::builder_page_types();
64 63 ?>
65 64 <select name="template_type" id="type">
@@ -68,8 +67,9 @@
68 67 <option value="<?php echo esc_attr( $key ); ?>" <?php selected( $key, $selected ); ?>><?php echo esc_html( $value ); ?></option>
69 68 <?php } ?>
70 69 </select>
71 70 <?php
71 +
72 72 }
73 73
74 74 /**
75 75 * Post type function
@@ -129,20 +129,21 @@
129 129 'with_front' => true,
130 130 'feeds' => false,
131 131 ],
132 132 'query_var' => true,
133 - 'publicly_queryable' => apply_filters( 'rtsb/builder/args/publicly_queryable', true ),
133 + 'publicly_queryable' => true,
134 134 'capability_type' => 'product',
135 135 'show_in_rest' => true,
136 136 'rest_base' => BuilderFns::$post_type_tb,
137 137 ];
138 138
139 - $tb_args = apply_filters( 'rtsb/builder/template_args', $tb_args );
139 + $tb_args = apply_filters( 'rtsb_register_template_builder_args', $tb_args );
140 140
141 141 register_post_type( BuilderFns::$post_type_tb, $tb_args );
142 142
143 143 // Flash rewrite rules.
144 144 $this->flush_rewrite_rules();
145 +
145 146 }
146 147
147 148 /**
148 149 * Flush rewrite
@@ -187,16 +188,16 @@
187 188 *
188 189 * @return void
189 190 */
190 191 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 );
192 + $post_id = absint( $post_id );
193 + $types = BuilderFns::builder_page_types();
194 + $type = BuilderFns::builder_type( $post_id ) ? BuilderFns::builder_type( $post_id ) : array_key_first( $types );
194 195
195 196 switch ( $column ) {
196 197 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 ) );
198 + $the_type = ! empty( $types[ $type ] ) ? esc_html( ucwords( $types[ $type ] ) ) : '';
199 + echo apply_filters( 'rtsb/columns/template/types/text', $the_type, $type, $post_id );
199 200 break;
200 201 case 'edit_with':
201 202 $edit_by = Fns::page_edit_with( $post_id );
202 203 echo esc_html( ucfirst( $edit_by ) );
@@ -201,42 +202,20 @@
201 202 $edit_by = Fns::page_edit_with( $post_id );
202 203 echo esc_html( ucfirst( $edit_by ) );
203 204 break;
204 205 case 'set_default':
205 - $is_set_default = absint( BuilderFns::builder_page_id_by_type( $template_type ) );
206 + $is_set_default = absint( BuilderFns::builder_page_id_by_type( $type ) );
206 207 $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;
208 + $page_type_for = $type;
209 + if ( 'product' === $type ) {
210 + $product_ids = apply_filters( 'rtsb/product/page/builder/selected/products', [], $post_id );
211 + $set_default = BuilderFns::get_specific_product_as_default( $post_id );
212 + if ( ! empty( $product_ids ) && $set_default ) {
213 + $is_set_default = $post_id;
214 + $page_type_for = 'template-' . $post_id . '-specific-products';
236 215 }
237 - } elseif ( 'archive' === $template_type ) {
238 - $categories_name = apply_filters( 'rtsb/template/builder/selected/categories', [], $post_id, $template_type );
216 + } elseif ( 'archive' === $type ) {
217 + $categories_name = apply_filters( 'rtsb/archive/page/builder/selected/categories', [], $post_id );
239 218 $set_default = BuilderFns::get_specific_category_as_default( $post_id );
240 219 if ( ! empty( $categories_name ) && $set_default ) {
241 220 $is_set_default = $post_id;
242 221 $page_type_for = 'template-' . $post_id . '-specific-category';
@@ -244,10 +223,10 @@
244 223 }
245 224 ?>
246 225 <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 226 <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>
227 + <?php do_action( 'rtsb/set/default/column/extra/field', $post_id, $type, $is_set_default, $is_published ); ?>
228 + <div class="rtsb_template_type" data-template_type="<?php echo esc_attr( $type ); ?>" style='display:none;'></div>
250 229 <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 230 <span class="rtsb-slider rtsb-round ">
252 231 <span class="rtsb-loader"></span>
253 232 </span>
@@ -302,23 +281,22 @@
302 281
303 282 /**
304 283 * Manage Template filter by template type
305 284 *
306 - * @param WP_Query $query WordPress main query.
285 + * @param \WP_Query $query WordPress main query.
307 286 *
308 287 * @return void
309 288 */
310 - public function query_filter( WP_Query $query ) {
289 + public function query_filter( \WP_Query $query ) {
311 290
312 291 if ( ! is_admin() || ! $this->is_current_screen() || ! empty( $query->query_vars['meta_key'] ) ) {
313 292 return;
314 293 }
315 - // phpcs:ignore WordPress.Security.NonceVerification.Recommended
316 294 $type = isset( $_GET['template_type'] ) ? sanitize_key( $_GET['template_type'] ) : '';
317 295
318 296 if ( '' != $type && 'all' != $type ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
319 297 $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
298 + $query->query_vars['meta_value'] = $type;
321 299 $query->query_vars['meta_compare'] = '=';
322 300 }
323 301 }
324 302