PluginProbe ʕ •ᴥ•ʔ
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution / 3.1.0
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution v3.1.0
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 3 years ago api.php 3 years ago base.php 3 years ago hooks.php 3 years ago templates.php 3 years ago
templates.php
117 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) {
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(sanitize_text_field(wp_unslash($_GET['preview_nonce'])), 'template_preview_' . sanitize_text_field(wp_unslash($_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 $activated_templates = Action::get_activated_templates();
47
48 if(empty($activated_templates)) {
49 return 0;
50 }
51
52 $language_code = apply_filters('shopengine_language_code', 'en');
53
54 if(isset($activated_templates[$template_type]['lang'][$language_code])) {
55 $templates = $activated_templates[$template_type]['lang'][$language_code];
56
57 $category_id = apply_filters('shopengine_template_category_id', 0);
58
59 if(0 === $category_id) {
60 $key = Action::get_template_key($templates);
61 } else {
62 $key = Action::get_template_key($templates, 'category_id', $category_id);
63 if(is_bool($key)) {
64 $key = Action::get_template_key($templates);
65 }
66 }
67
68 if(is_integer($key)) {
69 $template_data = $templates[$key];
70
71 if($template_data['status']) {
72 return $template_data['template_id'];
73 }
74 }
75 }
76 return 0;
77 }
78
79 public static function has_simple_product($in_status = ['publish', 'draft'])
80 {
81 global $wpdb;
82
83 $result = $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE post_type = 'product' AND post_status IN('publish', 'draft')");
84
85 return ! empty($result);
86 }
87
88 public static function create_wc_simple_product() {
89
90 $product = new \WC_Product_Simple();
91
92 $product->set_name( 'Shopengine preview product [do not delete it]' );
93 $product->set_description( 'This is a shopengine demo preview product' );
94 $product->set_short_description( 'This is a shopengine demo preview product' );
95 $product->set_status( 'draft' );
96
97 $product->set_regular_price( 100 );
98 $product->set_sale_price( 79 );
99 $product->set_price( 79 );
100
101 $product->set_sku( 'shopengine-demo-preview-01' );
102
103 $product->set_manage_stock( false );
104 $product->set_stock_status( 'instock' );
105
106 $product->set_weight( 11 );
107 $product->set_length( 12 );
108 $product->set_width( 10 );
109 $product->set_height( 9 );
110
111 //$product->set_image_id( 'image_id' );
112 //$product->set_gallery_image_ids( [] );
113
114 return $product->save();
115 }
116 }
117