PluginProbe ʕ •ᴥ•ʔ
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution / 4.9.1
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution v4.9.1
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 / page-templates / hooks / base-content.php
shopengine / core / page-templates / hooks Last commit date
archive.php 1 week ago base-content.php 2 years ago base.php 1 week ago cart.php 1 week ago checkout.php 1 week ago shop.php 4 years ago single.php 1 week ago
base-content.php
67 lines
1 <?php
2 namespace ShopEngine\Core\Page_Templates\Hooks;
3
4 defined('ABSPATH') || exit;
5
6
7 class Base_Content{
8 public $prod_tpl_id;
9 public $prod_tpl_slug;
10
11 use \ShopEngine\Traits\Singleton;
12
13 public function set_tpl_data($id, $slug) {
14
15 if(!empty($_GET['change_template']) && !empty($_GET['shopengine_template_id']) && !empty($_GET['preview_nonce'])){
16 $shopengine_template_id = sanitize_text_field(wp_unslash($_GET['shopengine_template_id']));
17 if(false !== wp_verify_nonce(sanitize_text_field(wp_unslash($_GET['preview_nonce'])), 'template_preview_' . $shopengine_template_id)){
18 $id = $this->get_revision_or_main_post($shopengine_template_id);
19 }
20 }
21
22 $this->prod_tpl_id = $id;
23 $this->prod_tpl_slug = $slug;
24 }
25
26 public function get_revision_or_main_post($main_post_id){
27 $main_post = get_post($main_post_id);
28 $latest_revision = wp_get_post_revisions( $main_post->ID );
29 $latest_revision = array_shift( $latest_revision );
30
31 if(!empty($latest_revision) && strtotime($latest_revision->post_modified) > strtotime($main_post->post_modified)){
32 return $latest_revision->ID;
33 }
34
35 return $main_post->ID;
36 }
37
38 public function content_filter() {
39 if(did_action('elementor/loaded')) {
40 remove_filter('the_content', [
41 \ShopEngine\Core\Page_Templates\Hooks\Base_Content::instance(),
42 'content_filter'
43 ]);
44
45 return \Elementor\Plugin::$instance->frontend->get_builder_content_for_display($this->prod_tpl_id);
46 }
47 }
48
49 public function load_content_designed_from_builder($base = null) {
50
51 add_filter('the_content', [$this, 'content_filter']);
52
53 do_action('shopengine/templates/elementor/content/before', $this->prod_tpl_slug);
54 do_action('shopengine/templates/elementor/content/before_' . $this->prod_tpl_slug);
55
56 if ($base instanceof Base) {
57 $base->before_hooks();
58 the_content();
59 $base->after_hooks();
60 } else {
61 the_content();
62 }
63
64 do_action('shopengine/templates/elementor/content/after_' . $this->prod_tpl_slug);
65 do_action('shopengine/templates/elementor/content/after', $this->prod_tpl_slug);
66 }
67 }