PluginProbe ʕ •ᴥ•ʔ
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution / 1.3.4
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution v1.3.4
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 5 years ago base.php 4 years ago hooks.php 4 years ago templates.php 4 years ago
templates.php
102 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($_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 $saved_id = get_option(Action::PK__SHOPENGINE_TEMPLATE . '__' . $template_type, 0); // this can be string with '-' or int, both.
47
48 global $wpdb;
49 $id_by_meta = $wpdb->get_results("select post_id from $wpdb->postmeta where meta_key = 'shopengine_template_uuid' and meta_value = '$saved_id' limit 1", ARRAY_A);
50
51 if(isset($id_by_meta[0])) {
52 return $id_by_meta[0];
53 }
54
55 return (int)$saved_id;
56 }
57
58 public static function has_simple_product($in_status = ['publish', 'draft']) {
59
60 $args = [
61 'type' => ['simple'],
62 'status' => $in_status,
63 'limit' => 1,
64 'orderby' => 'ID',
65 'order' => 'ASC',
66 ];
67
68 $prod = wc_get_products($args);
69
70 return !empty($prod[0]);
71 }
72
73 public static function create_wc_simple_product() {
74
75 $product = new \WC_Product_Simple();
76
77 $product->set_name( 'Shopengine preview product [do not delete it]' );
78 $product->set_description( 'This is a shopengine demo preview product' );
79 $product->set_short_description( 'This is a shopengine demo preview product' );
80 $product->set_status( 'draft' );
81
82 $product->set_regular_price( 100 );
83 $product->set_sale_price( 79 );
84 $product->set_price( 79 );
85
86 $product->set_sku( 'shopengine-demo-preview-01' );
87
88 $product->set_manage_stock( false );
89 $product->set_stock_status( 'instock' );
90
91 $product->set_weight( 11 );
92 $product->set_length( 12 );
93 $product->set_width( 10 );
94 $product->set_height( 9 );
95
96 //$product->set_image_id( 'image_id' );
97 //$product->set_gallery_image_ids( [] );
98
99 return $product->save();
100 }
101 }
102