PluginProbe ʕ •ᴥ•ʔ
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution with eCommerce Templates & Woo Widgets / 4.9.4
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution with eCommerce Templates & Woo Widgets v4.9.4
4.9.5 4.9.4 4.9.3 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 2 weeks ago base-content.php 2 years ago base.php 2 weeks ago cart.php 2 weeks ago checkout.php 2 weeks ago shop.php 4 years ago single.php 2 weeks 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 }