PluginProbe ʕ •ᴥ•ʔ
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution / 2.2.2
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution v2.2.2
4.9.2 4.9.1 4.9.0 2.0.0 2.1.0 2.2.0 2.2.1 2.2.2 2.3.0 2.4.0 2.5.0 2.5.1 3.0.0 3.1.0 3.1.1 4.0.0 4.0.1 4.1.0 4.1.1 4.2.0 4.2.1 4.3.0 4.3.1 4.4.0 4.5.0 4.5.1 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.6.7 4.6.8 4.6.9 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 4.8.7 4.8.8 4.8.9 trunk 0.1.2-beta 0.1.3-beta 0.1.4-beta 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.2.1 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.5.0 1.5.1 1.6.0 1.6.1 1.7.0 1.8.0 1.8.1 1.9.0
shopengine / core / builders / templates.php
shopengine / core / builders Last commit date
action.php 4 years ago api.php 4 years ago base.php 4 years ago hooks.php 4 years ago templates.php 4 years ago
templates.php
143 lines
1 <?php
2
3 namespace ShopEngine\Core\Builders;
4
5 use ShopEngine\Core\PageTemplates\Page_Templates;
6
7 class Templates {
8
9 const BODY_CLASS = 'shopengine-template';
10
11 public static function get_template_types(): array {
12
13 return Page_Templates::instance()->getTemplates();
14 }
15
16 public static function get_registered_template_data($template_id) {
17
18 $type = self::get_template_type_by_id($template_id);
19
20 return Page_Templates::instance()->getTemplate($type);
21 }
22
23 public static function get_template_type_by_id($pid): string {
24
25 $pm = get_post_meta($pid, Action::get_meta_key_for_type(), true);
26
27 return empty($pm) ? 'shop' : $pm;
28 }
29
30 public static function get_registered_template_id($template_type, $category = '') {
31
32 if(!empty($_GET['change_template']) && !empty($_GET['shopengine_template_id']) && !empty($_GET['preview_nonce'])) {
33
34 $nonce_status = apply_filters(
35 'shopengine/demo/bypass_nonce',
36 (wp_verify_nonce($_GET['preview_nonce'], 'template_preview_' . $_GET['shopengine_template_id']))
37 );
38
39 if(1 !== $nonce_status) {
40 return 0;
41 }
42
43 return (int)$_GET['shopengine_template_id'];
44 }
45
46 global $wpdb;
47
48 if (class_exists(\ShopEngine_Pro::class)) {
49
50 if (is_archive() && !is_shop()) {
51
52 $category = get_queried_object();
53
54 $category_id = isset($category->term_id) ? $category->term_id : false;
55
56 if ($category_id) {
57
58 $parent_categories = get_ancestors($category_id, 'product_cat');
59
60 if (!empty($parent_categories)) {
61 $category_id = $parent_categories[0];
62 }
63
64 $saved_template_id = get_option(Action::PK__SHOPENGINE_TEMPLATE . '__' . $template_type . '__' . $category_id, 0);
65
66 if ($saved_template_id != 0) {
67
68 $templates = $wpdb->get_results("select ID from $wpdb->posts where post_type = 'shopengine-template' and ID = '$saved_template_id' and post_status = 'publish'", ARRAY_A);
69
70 if(isset($templates[0])) {
71 return (int) $saved_template_id;
72 }
73 }
74 }
75
76 } elseif (is_product()) {
77
78 $terms = wc_get_product_terms(wc_get_product()->get_id(), 'product_cat', ['orderby' => 'parent', 'order' => 'DESC']);
79
80 if (!empty($terms)) {
81
82 $category_id = $terms[0]->parent !== 0 ? $terms[0]->parent : $terms[0]->term_id;
83 $saved_template_id = get_option(Action::PK__SHOPENGINE_TEMPLATE . '__' . $template_type . '__' . $category_id, 0);
84
85 if ($saved_template_id != 0) {
86
87 $templates = $wpdb->get_results("select ID from $wpdb->posts where post_type = 'shopengine-template' and ID = '$saved_template_id' and post_status = 'publish'", ARRAY_A);
88
89 if(isset($templates[0])) {
90 return (int) $saved_template_id;
91 }
92 }
93 }
94 }
95 }
96
97 return (int) get_option(Action::PK__SHOPENGINE_TEMPLATE . '__' . $template_type, 0);
98 }
99
100 public static function has_simple_product($in_status = ['publish', 'draft'])
101 {
102 global $wpdb;
103
104 $result = $wpdb->get_row("
105 SELECT *
106 FROM $wpdb->posts
107 WHERE post_type = 'product'
108 AND post_status IN('publish', 'draft')
109 ");
110
111 return ! empty($result);
112 }
113
114 public static function create_wc_simple_product() {
115
116 $product = new \WC_Product_Simple();
117
118 $product->set_name( 'Shopengine preview product [do not delete it]' );
119 $product->set_description( 'This is a shopengine demo preview product' );
120 $product->set_short_description( 'This is a shopengine demo preview product' );
121 $product->set_status( 'draft' );
122
123 $product->set_regular_price( 100 );
124 $product->set_sale_price( 79 );
125 $product->set_price( 79 );
126
127 $product->set_sku( 'shopengine-demo-preview-01' );
128
129 $product->set_manage_stock( false );
130 $product->set_stock_status( 'instock' );
131
132 $product->set_weight( 11 );
133 $product->set_length( 12 );
134 $product->set_width( 10 );
135 $product->set_height( 9 );
136
137 //$product->set_image_id( 'image_id' );
138 //$product->set_gallery_image_ids( [] );
139
140 return $product->save();
141 }
142 }
143