PluginProbe
LoftLoader / 2.2.1
LoftLoader v2.2.1
trunk 1.0.0 1.0.1 1.0.2 2.0.0 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.3 2.3.1 2.3.2 2.3.3 All 34 releases
loftloader / inc / any-page / class-any-page-filter.php

class-any-page-filter.php in LoftLoader 2.2.1, at inc/any-page/class-any-page-filter.php

87 lines 2.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! class_exists('LoftLoader_Any_Page_Filter' ) ) {
3 class LoftLoader_Any_Page_Filter{
4 private $defaults = array();
5 private $page_settings = array();
6 private $page_enabled = false;
7 private $is_customize = false;
8 public function __construct(){
9 add_filter('loftloader_get_loader_setting', array($this, 'get_loader_setting'), 10, 2);
10 add_filter('loftloader_loader_enabled', array($this, 'loader_enabled'));
11 add_action('loftloader_settings', array($this, 'loader_settings'));
12 }
13 /**
14 * @description get the plugin settings
15 */
16 public function loader_settings() {
17 global $wp_customize, $loftloader_default_settings;
18 $this->is_customize = isset( $wp_customize ) ? true : false;
19 if ( $this->is_any_page_extension_enabled() ) {
20 $page = $this->get_queried_object();
21 if ( ( $atts = $this->get_loader_attributes( $page->ID ) ) !== false ) {
22 if ( isset( $atts['loftloader_show_close_tip'] ) ) {
23 $atts['loftloader_show_close_tip'] = base64_decode( $atts['loftloader_show_close_tip'] );
24 }
25 $this->page_settings = array_merge( $loftloader_default_settings, $atts );
26 $this->page_enabled = ( $atts['loftloader_main_switch'] === 'on' );
27 }
28 }
29 }
30 /**
31 * @description helper function to get shortcode attributes
32 */
33 private function get_loader_attributes($page_id){
34 $loader = get_post_meta($page_id, 'loftloader_page_shortcode', true);
35 $loader = trim($loader);
36 if(!empty($loader)){
37 $loader = substr($loader, 1, -1);
38 return shortcode_parse_atts($loader);
39 }
40 return false;
41 }
42 /**
43 * Helper function to test whether show loftloader
44 * @return boolean return true if loftloader enabled and display on current page, otherwise false
45 */
46 public function loader_enabled(){
47 return $this->page_enabled;
48 }
49 /**
50 * Helper function get setting option
51 */
52 public function get_loader_setting($setting_value, $setting_id){
53 return ($this->page_enabled && !$this->is_customize && isset($this->page_settings[$setting_id])) ? $this->page_settings[$setting_id] : $setting_value;
54 }
55
56 /**
57 * Help function to test if any page extension enabled on current page
58 */
59 protected function is_any_page_extension_enabled() {
60 $is_fromt_home_page = ( is_front_page() || is_home() ) && ( get_option('show_on_front', false ) == 'page' );
61 $is_shop_page = $this->is_woocommerce_shop();
62 return $is_fromt_home_page || $is_shop_page || is_page();
63 }
64 /**
65 * Get queried page object
66 */
67 protected function get_queried_object() {
68 if ( $this->is_woocommerce_shop() ) {
69 $page_id = wc_get_page_id( 'shop' );
70 return get_page( $page_id );
71 } else {
72 return get_queried_object();
73 }
74 }
75 /**
76 * Condition function test if is woocommerce shop page
77 */
78 protected function is_woocommerce_shop() {
79 if ( function_exists( 'is_shop' ) ) {
80 $page_id = wc_get_page_id( 'shop' );
81 return ! empty( $page_id ) && ( $page_id !== -1 ) && is_shop();
82 }
83 return false;
84 }
85 }
86 }
87