관리-도구
편집 파일: init.php
<?php // We need the ABSPATH if (!defined('ABSPATH')) exit; // Ok so we are now ready to go register_activation_hook(PAGELAYER_PRO_FILE, 'pagelayer_pro_activation'); // Prevent update of pagelayer free // This also work for auto update add_filter('site_transient_update_plugins', 'pagelayer_pro_disable_manual_update_for_plugin'); add_filter('pre_site_transient_update_plugins', 'pagelayer_pro_disable_manual_update_for_plugin'); // Auto update free version after update pro version add_action('upgrader_process_complete', 'pagelayer_pro_update_free_after_pro', 10, 2); // Add the action to load the plugin add_action('plugins_loaded', 'pagelayer_pro_load_plugin'); // The function that will be called when the plugin is loaded function pagelayer_pro_load_plugin(){ global $pagelayer; // Load license pagelayer_pro_load_license(); // Check if the installed version is outdated pagelayer_pro_update_check(); // Load the language load_plugin_textdomain('pagelayer-pro', false, PAGELAYER_PRO_SLUG.'/languages/'); // Check for updates include_once(PAGELAYER_PRO_DIR.'/main/plugin-update-checker.php'); $pagelayer_updater = Pagelayer_PucFactory::buildUpdateChecker(pagelayer_pro_api_url().'updates.php?version='.PAGELAYER_PRO_VERSION, PAGELAYER_PRO_FILE); // Add the license key to query arguments $pagelayer_updater->addQueryArgFilter('pagelayer_pro_updater_filter_args'); // Show the text to install the license key add_filter('puc_manual_final_check_link-pagelayer-pro', 'pagelayer_pro_updater_check_link', 10, 1); // Load the template builder include_once(PAGELAYER_PRO_DIR.'/main/template-builder.php'); $pagelayer->allowed_mime_type = array( 'otf' => 'font/otf', 'ttf' => 'font/ttf', 'woff' => 'font/woff|application/font-woff|application/x-font-woff', 'woff2' => 'font/woff2|font/x-woff2' ); // Load the pagelayer custom fonts include_once(PAGELAYER_PRO_DIR.'/main/custom_fonts.php'); // Are we to disable the notice if(current_user_can('activate_plugins')){ if(isset($_GET['pagelayer-pro-version-notice']) && (int)$_GET['pagelayer-pro-version-notice'] == 0){ check_ajax_referer('pagelayer_pro_version_nonce', 'pagelayer_nonce'); if(!empty($_REQUEST['type'])){ // Notice dismiss for 7 days update_option('pagelayer_pro_'.$_REQUEST['type'].'_version_nag', time() + (7 * 86400)); } die('DONE'); } // Show the version notice add_action('admin_notices', 'pagelayer_pro_free_version_nag'); } } // Nag when plugins dont have same version. function pagelayer_pro_free_version_nag(){ if(!defined('PAGELAYER_VERSION')){ return; } $sctipt_enqueue = false; $older_pro = get_option('pagelayer_pro_older_pro_version_nag'); $older_free = get_option('pagelayer_pro_older_free_version_nag'); if(version_compare(PAGELAYER_VERSION, PAGELAYER_PRO_VERSION) > 0 && (empty($older_pro) || $older_pro < time())){ echo '<div class="pagelayer-pro-version-notice notice notice-warning is-dismissible" data-notice="older_pro" onclick="pagelayer_pro_notice_dismiss(event)"> <p style="font-size:16px;">'.esc_html__('You are using an older version of Pagelayer Pro. We recommend updating to the latest version to ensure seamless and uninterrupted use of the plugin.').'</p> </div>'; $sctipt_enqueue = true; }elseif(version_compare(PAGELAYER_VERSION, PAGELAYER_PRO_VERSION) < 0 && (empty($older_free) || $older_free < time())){ echo '<div class="pagelayer-pro-version-notice notice notice-warning is-dismissible" data-notice="older_free" onclick="pagelayer_pro_notice_dismiss(event)"> <p style="font-size:16px;">'.esc_html__('You are using an older version of Pagelayer. We recommend updating to the latest free version to ensure smooth and uninterrupted use of the plugin.') .'</p> </div>'; $sctipt_enqueue = true; } if($sctipt_enqueue){ echo ' <script type="application/javascript"> function pagelayer_pro_notice_dismiss(e){ e.preventDefault(); var target = jQuery(e.target); if(!target.hasClass("notice-dismiss")){ return; } var jEle = target.closest(".pagelayer-pro-version-notice"); var data = {}; data["type"] = jEle.data("notice"); jEle.hide(); // Save this preference jQuery.post("'.admin_url('?pagelayer-pro-version-notice=0&pagelayer_nonce='.wp_create_nonce("pagelayer_pro_version_nonce") ).'", data, function(response) { //alert(response); }); return false; }; </script>'; } } // Add filter to load custom widgets functions add_action('pagelayer_load_shortcode_functions', 'pagelayer_pro_load_shortcode_functions'); function pagelayer_pro_load_shortcode_functions(){ include_once(PAGELAYER_PRO_DIR.'/main/freemium_functions.php'); include_once(PAGELAYER_PRO_DIR.'/main/premium_functions.php'); } // Apply filter to load custom widgets after shortcodes add_action('pagelayer_after_add_shortcode', 'pagelayer_pro_after_add_shortcode'); function pagelayer_pro_after_add_shortcode(){ include_once(PAGELAYER_PRO_DIR.'/main/freemium.php'); include_once(PAGELAYER_PRO_DIR.'/main/premium.php'); } // Load customizer setting add_action('pagelayer_after_wc_customization', 'pagelayer_pro_after_wc_customization'); function pagelayer_pro_after_wc_customization(){ include_once(PAGELAYER_PRO_DIR.'/main/premium-woocommerce.php'); } // Load Local google fonts add_action('pagelayer_google_fonts_url', 'pagelayer_pro_google_fonts_url'); function pagelayer_pro_google_fonts_url($fonts_url){ // Is google font serve locally? if(get_option('pagelayer_local_gfont') != 1){ return $fonts_url; } $upload_dir = wp_upload_dir(); $local_font_md5 = md5($fonts_url); $_fonts_url = $upload_dir['baseurl'].'/pl-google-fonts/'.$local_font_md5.'.css'; $_fonts_path = $upload_dir['basedir'].'/pl-google-fonts/'.$local_font_md5.'.css'; if(!file_exists($_fonts_path) && file_exists(PAGELAYER_PRO_DIR.'/main/download_google_fonts.php')){ include_once(PAGELAYER_PRO_DIR.'/main/download_google_fonts.php'); pagelayer_pro_download_google_fonts($fonts_url); } return $_fonts_url; } // Load js files for editor add_action('pagelayer_editor_give_js', 'pagelayer_pro_editor_give_js'); function pagelayer_pro_editor_give_js($js){ $js.= '&premium=premium.js'; return $js; } // Load js files add_action('pagelayer_add_give_js', 'pagelayer_pro_add_give_js'); function pagelayer_pro_add_give_js($js){ $js.= '&premium=chart.min.js,premium-frontend.js,shuffle.min.js'; return $js; } // Load css files add_action('pagelayer_add_give_css', 'pagelayer_pro_add_give_css'); function pagelayer_pro_add_give_css($css){ $css.= '&premium=premium-frontend.css'; return $css; } // Load this For audio widget add_action('pagelayer_load_audio_widget', 'pagelayer_pro_load_audio_widget'); function pagelayer_pro_load_audio_widget($is_audio){ global $pagelayer; if($is_audio || pagelayer_is_live_iframe()){ wp_enqueue_script('wp-mediaelement'); wp_enqueue_style( 'wp-mediaelement' ); $pagelayer->sc_audio_enqueued = 1; } } // Load the langs add_action('pagelayer_load_languages', 'pagelayer_pro_load_languages'); function pagelayer_pro_load_languages($langs){ $_langs = @file_get_contents(PAGELAYER_PRO_DIR.'/languages/en.json'); $_langs = @json_decode($_langs, true); if(!empty($_langs)){ $langs = array_merge($langs, $_langs); } return $langs; }