????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 3.149.10.88 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/www.astacus.eu/wp-content/plugins/coming-soon/framework/ |
Upload File : |
<?php /** * seed_csp4 Admin * * @package WordPress * @subpackage seed_csp4 * @since 0.1.0 */ class SEED_CSP4_ADMIN { public $plugin_version = SEED_CSP4_VERSION; public $plugin_name = SEED_CSP4_PLUGIN_NAME; /** * Instance of this class. * * @since 1.0.0 * * @var object */ protected static $instance = null; /** * Slug of the plugin screen. * * @since 1.0.0 * * @var string */ protected $plugin_screen_hook_suffix = null; /** * Load Hooks */ public function __construct() { if (is_admin() && (!defined('DOING_AJAX') || !DOING_AJAX)) { add_action('admin_enqueue_scripts', array( &$this, 'admin_enqueue_scripts' )); add_action('admin_menu', array( &$this, 'create_menus' )); add_action('admin_init', array( &$this, 'reset_defaults' )); add_action('admin_init', array( &$this, 'create_settings' )); add_filter('plugin_action_links', array( &$this, 'plugin_action_links' ), 10, 2); add_filter('tmp_grunion_allow_editor_view', '__return_false'); if(version_compare(phpversion(), '5.3.3', '>=')){ add_action( 'wpms_tgmpa_register', 'coming_soon_init_recommendations' ); } } if (defined('DOING_AJAX')) { // Background API Ajax add_action('wp_ajax_seed_csp4_backgrounds', array(&$this,'backgrounds')); } } /** * Return an instance of this class. * * @since 1.0.0 * * @return object A single instance of this class. */ public static function get_instance() { // If the single instance hasn't been set, set it now. if (null == self::$instance) { self::$instance = new self; } return self::$instance; } /** * backgrounds api * */ public function backgrounds() { if (check_ajax_referer('seed_csp4_backgrounds')) { $r = array(); $page = ''; if (isset($_REQUEST['page'])) { $page = $_REQUEST['page']; $page = '?page='.$page; $r['page'] = $_REQUEST['page']; } $query = ''; if (isset($_REQUEST['query'])) { $query = $_REQUEST['query']; $query = '?query='.$query; $r['query'] = $_REQUEST['query']; } if (false === (get_transient('seed_csp4_backgrounds_page_'.$query.$page))) { //f(1){ //echo 'miss'; $bg_api = 'https://api.seedprod.com/v3/free_background_search'; $url = $bg_api.'?'.http_build_query($r); $response = wp_remote_get($url); //var_dump($url); if (is_wp_error($response)) { $error_message = $response->get_error_message(); echo "Something went wrong: $error_message"; } else { $response_code = wp_remote_retrieve_response_code($response); if ($response_code == '200') { set_transient('seed_csp4_backgrounds_page_'.$query.$page, $response['body'], 604800); echo $response['body']; } else { echo 'There was an issue loading the stock images. Please try again later.'; } } } else { //echo 'hit'; echo get_transient('seed_csp4_backgrounds_page_'.$query.$page); } exit(); } } /** * Reset the settings page. Reset works per settings id. * */ public function reset_defaults() { if (isset($_POST[ 'seed_csp4_reset' ])) { $option_page = $_POST[ 'option_page' ]; check_admin_referer($option_page . '-options'); require_once(SEED_CSP4_PLUGIN_PATH.'inc/default-settings.php'); $_POST[ $_POST[ 'option_page' ] ] = $seed_csp4_settings_deafults[$_POST[ 'option_page' ]]; add_settings_error('general', 'seed_csp4-settings-reset', __("Settings reset."), 'updated'); } } /** * Properly enqueue styles and scripts for our theme options page. * * This function is attached to the admin_enqueue_scripts action hook. * * @since 0.1.0 * @param string $hook_suffix The name of the current page we are on. */ public function admin_enqueue_scripts($hook_suffix) { if (strpos($hook_suffix, 'seed_csp4') === false) { return; } wp_enqueue_script('media-upload'); wp_enqueue_script('jquery-ui-sortable'); wp_enqueue_script('wp-lists'); wp_enqueue_script('seed_csp4-framework-js', SEED_CSP4_PLUGIN_URL . 'framework/settings-scripts.js', array( 'jquery' ), $this->plugin_version); wp_enqueue_script('seed_csp4-magnific-popup-js', SEED_CSP4_PLUGIN_URL . 'public/vendor/magnific-popup/jquery.magnific-popup.min.js', array( 'jquery' ), $this->plugin_version); wp_enqueue_script('seed_csp4-tingle', SEED_CSP4_PLUGIN_URL . 'public/vendor/tingle/tingle.min.js', array(), $this->plugin_version); wp_enqueue_script('theme-preview'); wp_enqueue_style('thickbox'); wp_enqueue_style('media-upload'); wp_enqueue_style('wp-color-picker'); wp_enqueue_style('seed_csp4-framework-css', SEED_CSP4_PLUGIN_URL . 'framework/settings-style.css', false, $this->plugin_version); wp_enqueue_style('font-awesome-solid', SEED_CSP4_PLUGIN_URL . 'public/vendor/fontawesome/css/solid.min.css', false, $this->plugin_version, false, $this->plugin_version); wp_enqueue_style('font-awesome-brands', SEED_CSP4_PLUGIN_URL . 'public/vendor/fontawesome/css/brands.min.css', false, $this->plugin_version, false, $this->plugin_version); wp_enqueue_style('font-awesome', SEED_CSP4_PLUGIN_URL . 'public/vendor/fontawesome/css/fontawesome.min.css', false, $this->plugin_version, false, $this->plugin_version); wp_enqueue_style('seed_csp4-magnific-popup-js', SEED_CSP4_PLUGIN_URL . 'public/vendor/magnific-popup/magnific-popup.css', false, $this->plugin_version, false, $this->plugin_version); wp_enqueue_style('seed_csp4-tingle-css', SEED_CSP4_PLUGIN_URL . 'public/vendor/tingle/tingle.min.css', false, $this->plugin_version, false, $this->plugin_version); } /** * Creates WordPress Menu pages from an array in the config file. * * This function is attached to the admin_menu action hook. * * @since 0.1.0 */ public function create_menus() { add_menu_page( __("SeedProd", 'coming-soon'), __("SeedProd", 'coming-soon'), 'manage_options', 'seed_csp4', array( &$this , 'option_page' ), SEED_CSP4_PLUGIN_URL . 'public/images/menu-logo.png', 200 ); add_submenu_page( 'seed_csp4', __("Settings", 'coming-soon'), __("Settings", 'coming-soon'), 'manage_options', 'seed_csp4', array( &$this , 'option_page' ) ); add_submenu_page( 'seed_csp4', __("Themes", 'coming-soon'), __("Themes", 'coming-soon'), 'manage_options', 'seed_csp4_themes', array( &$this , 'themes_page' ) ); add_submenu_page( 'seed_csp4', __("Free Stock Images", 'coming-soon'), __("Free Stock Images", 'coming-soon'), 'manage_options', 'seed_csp4_stockimages', array( &$this , 'stockimages_page' ) ); add_submenu_page( 'seed_csp4', __("Subscribers", 'coming-soon'), __("Subscribers", 'coming-soon'), 'manage_options', 'seed_csp4_subscribers', array( &$this , 'subscribers_page' ) ); $plugins = seed_csp4_plugins_active(); if($plugins['rafflepress-pro'] == 'Not Installed'){ add_submenu_page( 'seed_csp4', __("Giveaways", 'coming-soon'), __("Giveaways", 'coming-soon'), 'manage_options', 'seed_csp4_giveaways', array( &$this , 'giveaways_page' ) ); } add_submenu_page( 'seed_csp4', __("Addons", 'coming-soon'), __("<span style='color:#ff9a4b'>Addons</span>", 'coming-soon'), 'manage_options', 'seed_csp4_addons', array( &$this , 'addons_page' ) ); add_submenu_page( 'seed_csp4', __("Suggest a Feature", 'coming-soon'), __("Suggest a Feature »", 'coming-soon'), 'manage_options', 'seed_csp4_suggest', array( &$this , 'suggest_page' ) ); } public function themes_page() { include SEED_CSP4_PLUGIN_PATH.'resources/views/themes.php'; } public function stockimages_page() { include SEED_CSP4_PLUGIN_PATH.'resources/views/stockimages.php'; } public function giveaways_page() { include SEED_CSP4_PLUGIN_PATH.'resources/views/giveaways.php'; } public function subscribers_page() { include SEED_CSP4_PLUGIN_PATH.'resources/views/subscribers.php'; } public function addons_page() { include SEED_CSP4_PLUGIN_PATH.'resources/views/addons.php'; } public function suggest_page() { ?> <script> window.open('https://www.seedprod.com/suggest-a-feature/', '_blank'); window.location.href = "admin.php?page=seed_csp4"; </script> <?php } /** * Display settings link on plugin page */ public function plugin_action_links($links, $file) { $plugin_file = SEED_CSP4_SLUG; if ($file == $plugin_file) { $settings_link = '<a href="admin.php?page=seed_csp4">Settings</a>'; array_unshift($links, $settings_link); } return $links; } /** * Allow Tabs on the Settings Page * */ public function plugin_options_tabs() { $menu_slug = null; $page = $_REQUEST[ 'page' ]; $uses_tabs = false; $current_tab = isset($_GET[ 'tab' ]) ? $_GET[ 'tab' ] : false; //Check if this config uses tabs foreach (seed_csp4_get_options() as $v) { if ($v[ 'type' ] == 'tab') { $uses_tabs = true; break; } } // If uses tabs then generate the tabs if ($uses_tabs) { echo '<h2 class="nav-tab-wrapper" style="padding-left:20px">'; $c = 1; foreach (seed_csp4_get_options() as $v) { if (isset($v[ 'menu_slug' ])) { $menu_slug = $v[ 'menu_slug' ]; } if ($menu_slug == $page && $v[ 'type' ] == 'tab') { $active = ''; if ($current_tab) { $active = $current_tab == $v[ 'id' ] ? 'nav-tab-active' : ''; } elseif ($c == 1) { $active = 'nav-tab-active'; } if ($v[ 'id' ] == 'seed_csp4_subscribers') { echo '<a id="'.$v[ 'id' ].'" class="nav-tab ' . $active . '" href="admin.php?page=seed_csp4_subscribers">'; } else { echo '<a id="'.$v[ 'id' ].'" class="nav-tab ' . $active . '" href="?page=' . $menu_slug . '&tab=' . $v[ 'id' ] . '">'; } if ($v[ 'id' ] == 'seed_csp4_setting') { echo '<i class="fas fa-edit"></i> '; } if ($v[ 'id' ] == 'seed_csp4_design') { echo '<i class="fas fa-image"></i> '; } if ($v[ 'id' ] == 'seed_csp4_subscribers') { echo '<i class="fas fa-users"></i> '; } if ($v[ 'id' ] == 'seed_csp4_advanced') { echo '<i class="fas fa-code"></i> '; } echo $v[ 'label' ] . '</a>'; $c++; } } echo '<a class="nav-tab seed_csp4-preview thickbox-preview" target="_blank" href="'.home_url().'?cs_preview=true" title="'.__('← Close Window', 'coming-soon').'"><i class="fas fa-external-link-alt"></i> '.__('Live Preview', 'coming-soon').'</a>'; echo '<a class="nav-tab seed_csp4-support seed-csp4-cta" style="background-color: #04be5b;color: #fff" href="'.seed_csp4_admin_upgrade_link('upgrade-tab').'" target="_blank" rel="noopener noreferrer"><i class="fas fa-star"></i> '.__('Upgrade to Pro for More Features', 'coming-soon').'</a>'; echo '</h2>'; } } /** * Get the layout for the page. classic|2-col * */ public function get_page_layout() { $layout = 'classic'; foreach (seed_csp4_get_options() as $v) { switch ($v[ 'type' ]) { case 'menu': $page = $_REQUEST[ 'page' ]; if ($page == $v[ 'menu_slug' ]) { if (isset($v[ 'layout' ])) { $layout = $v[ 'layout' ]; } } break; } } return $layout; } /** * Render the option pages. * * @since 0.1.0 */ public function option_page() { $menu_slug = null; $page = $_REQUEST[ 'page' ]; $layout = $this->get_page_layout(); ?> <div class="wrap columns-2 seed-csp4"> <div id="seed_csp4_header"> <?php include SEED_CSP4_PLUGIN_PATH.'resources/views/quicklinks.php'; ?> <h1> <img style="width:150px;margin-right:10px;margin-bottom: -2px;vertical-align: text-bottom;" src="<?php echo SEED_CSP4_PLUGIN_URL ?>public/images/seedprod-logo.png"> Coming Soon Page and Maintenance Mode Lite <span class="seed_csp4_version" style="font-size: 10px;"> Version <?php echo SEED_CSP4_VERSION; ?></span> </h1> <?php $this->plugin_options_tabs(); ?> </div> <div class="seed-wrap"> <?php if ($layout == '2-col'): ?> <div id="poststuff"> <div id="post-body" class="metabox-holder columns-2"> <div id="post-body-content"> <?php endif; ?> <?php if (!empty($_GET['tab'])) { do_action('seed_csp4_render_page', array('tab'=>$_GET['tab'])); } ?> <form action="options.php" method="post"> <!-- <input name="submit" type="submit" value="<?php _e('Save All Changes', 'coming-soon'); ?>" class="button-primary"/> --> <?php if (!empty($_GET['tab']) && $_GET['tab'] != 'seed_csp4_tab_3') { ?> <!-- <input id="reset" name="reset" type="submit" value="<?php _e('Reset Settings', 'coming-soon'); ?>" class="button-secondary"/> --> <?php } ?> <?php $show_submit = false; foreach (seed_csp4_get_options() as $v) { if (isset($v[ 'menu_slug' ])) { $menu_slug = $v[ 'menu_slug' ]; } if ($menu_slug == $page) { switch ($v[ 'type' ]) { case 'menu': break; case 'tab': $tab = $v; if (empty($default_tab)) { $default_tab = $v[ 'id' ]; } break; case 'setting': $current_tab = isset($_GET[ 'tab' ]) ? $_GET[ 'tab' ] : $default_tab; if ($current_tab == $tab[ 'id' ]) { settings_fields($v[ 'id' ]); $show_submit = true; } break; case 'section': $current_tab = isset($_GET[ 'tab' ]) ? $_GET[ 'tab' ] : $default_tab; if ($current_tab == $tab[ 'id' ] or $current_tab === false) { if ($layout == '2-col') { echo '<div id="'.$v[ 'id' ].'" class="postbox seedprod-postbox">'; $this->do_settings_sections($v[ 'id' ], $show_submit); echo '</div>'; } else { do_settings_sections($v[ 'id' ]); } } break; } } } ?> <?php if ($show_submit): ?> <p> <!-- <input name="submit" type="submit" value="<?php _e('Save All Changes', 'coming-soon'); ?>" class="button-primary"/> --> <!-- <input id="reset" name="reset" type="submit" value="<?php _e('Reset Settings', 'coming-soon'); ?>" class="button-secondary"/> --> </p> <?php endif; ?> </form> <?php if ($layout == '2-col'): ?> </div> <!-- #post-body-content --> <div id="postbox-container-1" class="postbox-container"> <div id="side-sortables" class="meta-box-sortables ui-sortable"> <!-- <div class="postbox "> <div class="handlediv" title="Click to toggle"><br /></div> <h3 class="hndle"><span><i class="fas fa-rocket"></i> <?php _e('Getting Started Video - 60 sec', 'coming-soon') ?></span></h3> <div class="inside"> <div class=""> <iframe width="250" height="188" src="https://www.youtube.com/embed/hcY0M0IYcAE" frameborder="0" allowfullscreen></iframe> </div> </div> </div> --> <a style="border:1px solid #ddd;display:inline-block;" href="https://www.seedprod.com/landing/coming-soon-page-getting-started-video/?utm_source=coming-soon-plugin&utm_medium=banner&utm_campaign=coming-soon-banner-in-plugin" target="_blank"><img src="<?php echo SEED_CSP4_PLUGIN_URL; ?>framework/getting-started-banner.png" /></a> <br><br> <a style="border:1px solid #ddd;display:inline-block;" href="<?php echo seed_csp4_admin_upgrade_link('sidebar-banner')?>" target="_blank" rel="noopener noreferrer" class="seed-csp4-cta"><img src="<?php echo SEED_CSP4_PLUGIN_URL; ?>framework/coming-soon-pro-sidebar.png" /></a> <br><br> <!-- <div class="postbox " style="background-color:#FAE6A4;color:#333 !important; border-color:#333 !important"> <div class="handlediv" title="Click to toggle"><br /></div> <h3 class="hndle" style="color:#fff !important;border-color:#333 !important; background-color:#333"><span><i class="fas fa-star"></i> <?php _e('Yo-Yo-Yo, Why Go Pro?', 'coming-soon') ?></span></h3> <div class="inside"> <div class="support-widget"> <ul> <li><i class="fas fa-check"></i> <strong>Realtime Page Customizer</strong></li> <li><i class="fas fa-check"></i> <strong>More Design Controls and Widgets</strong></li> <li><i class="fas fa-check"></i> <strong>Pre Made Themes</strong></li> <li><i class="fas fa-check"></i> <strong>1000's of Free Stock Images</strong></li> <li><i class="fas fa-check"></i> <strong>Collect Emails (MailChimp, Database and other integrations) </strong></li> <li><i class="fas fa-check"></i> <strong>Go Viral with Social Media Integrations </strong></li> <li><i class="fas fa-check"></i> <strong>Shortcode Support, Google Font Support, Background Slideshow and Videos </strong></li> <li><i class="fas fa-check"></i> <strong>Give clients Instant Access with a Bypass Link </strong></li> <li><hr style=" border-top: 1px solid #333; border-bottom: none"></li> <li><strong>Plus lots more!</strong></li> </ul> <p> <a class="button-primary" style="background-color:#05AE0E; border-color:#05AE0E; box-shadow:none; text-shadow: none; width:100%; text-align:center;" href="<?php echo seed_csp4_admin_upgrade_link('sidebar'); ?>" target="_blank" rel="noopener noreferrer">See What's In The Pro Version</a> </p> </div> </div> </div> --> <div class="postbox "> <div class="handlediv" title="Click to toggle"><br /></div> <div class="inside"> <div class="support-widget"> <p style="text-align: center;margin-bottom:0"><a href="https://wordpress.org/support/plugin/coming-soon" target="_blank"><?php _e('Got a Support Question', 'coming-soon') ?></a> <i class="fas fa-question-circle"></i> <!-- <li>» <a href="http://support.seedprod.com/article/83-how-to-clear-wp-super-caches-cache" target="_blank"><?php _e('Common Caching Issues Resolutions', 'coming-soon') ?></a></li> --> </p> <!-- <p style="text-align: center; margin-top:0"> <a style="display:inline-block" href="https://wordpress.org/support/plugin/coming-soon/reviews/?filter=5#new-post">Please Rate this Plugin to show your Support!</a> <i class="fas fa-star"></i><i class="fas fa-star"></i><i class="fas fa-star"></i><i class="fas fa-star"></i><i class="fas fa-star"></i></p> --> </div> </div> </div> <form id="seed-bg-form" style="display:none" action="https://www.getdrip.com/forms/247721848/submissions" method="post" target="_blank"> <div> <label for="drip-email">Email Address</label><br /> <input type="email" id="drip-email" name="fields[email]" value="" /> </div> <div> <input id="drip-submit" type="submit" name="submit" value="Sign Up" /> </div> </form> <!-- <div class="postbox like-postbox"> <div class="handlediv" title="Click to toggle"><br /></div> <h3 class="hndle"><span><i class="fas fa-heart"></i> <?php _e('Show Some Love', 'coming-soon') ?></span></h3> <div class="inside"> <div class="like-widget"> <p><?php _e('Like this plugin? Show your support by:', 'coming-soon')?></p> <ul> <li>» <a target="_blank" href="http://www.seedprod.com/features/?utm_source=coming-soon-plugin&utm_medium=banner&utm_campaign=coming-soon-link-in-plugin"><?php _e('Buy It', 'coming-soon') ?></a></li> <li>» <a target="_blank" href="https://wordpress.org/support/view/plugin-reviews/coming-soon?rate=5#postform"><?php _e('Rate It on WordPress.org', 'coming-soon') ?></a></li> <li>» <a target="_blank" href="<?php echo "http://twitter.com/share?url=https%3A%2F%2Fwordpress.org%2Fplugins%2Fultimate-coming-soon-page%2F&text=Check out this awesome %23WordPress Plugin I'm using, Coming Soon Page and Maintenance Mode by SeedProd"; ?>"><?php _e('Tweet It', 'coming-soon') ?></a></li> </ul> </div> </div> </div> --> <!-- <div class="postbox rss-postbox"> <div class="handlediv" title="Click to toggle"><br /></div> <h3 class="hndle"><span><i class="fab fa-wordpress"></i> <?php _e('SeedProd Blog', 'ultimate-coming-soon-page') ?></span></h3> <div class="inside"> <div class="rss-widget"> <?php wp_widget_rss_output(array( 'url' => 'http://feeds.feedburner.com/seedprod/', 'title' => 'SeedProd Blog', 'items' => 3, 'show_summary' => 0, 'show_author' => 0, 'show_date' => 1, )); ?> <ul> </ul> </div> </div> </div> --> </div> </div> </div> <!-- #post-body --> </div> <!-- #poststuff --> <?php endif; ?> </div> <!-- .wrap --> </div> <?php if (!empty($_GET['tab']) && $_GET['tab'] == 'seed_csp4_design') { ?> <?php } ?> <!-- JS login to confirm setting resets. --> <script> jQuery(document).ready(function($) { $('#reset').click(function(e) { if (!confirm( '<?php _e('This tabs settings be deleted and reset to the defaults. Are you sure you want to reset?', 'coming-soon'); ?>' )) { e.preventDefault(); } }); }); </script> <?php include SEED_CSP4_PLUGIN_PATH.'resources/views/exit-pop.php'; ?> <script> jQuery(document).ready(function($) { $(".seed-csp4-cta").click(function(e) { jQuery('.exit-popup-link').magnificPopup('open'); }); }); </script> <?php } /** * Create the settings options, sections and fields via the WordPress Settings API * * This function is attached to the admin_init action hook. * * @since 0.1.0 */ public function create_settings() { foreach (seed_csp4_get_options() as $k => $v) { switch ($v[ 'type' ]) { case 'menu': $menu_slug = $v[ 'menu_slug' ]; break; case 'setting': if (empty($v[ 'validate_function' ])) { $v[ 'validate_function' ] = array( &$this, 'validate_machine' ); } register_setting($v[ 'id' ], $v[ 'id' ], $v[ 'validate_function' ]); $setting_id = $v[ 'id' ]; break; case 'section': if (empty($v[ 'desc_callback' ])) { $v[ 'desc_callback' ] = array( &$this, 'return_empty_string' ); } else { $v[ 'desc_callback' ] = $v[ 'desc_callback' ]; } add_settings_section($v[ 'id' ], $v[ 'label' ], $v[ 'desc_callback' ], $v[ 'id' ]); $section_id = $v[ 'id' ]; break; case 'tab': break; default: if (empty($v[ 'callback' ])) { $v[ 'callback' ] = array( &$this, 'field_machine' ); } add_settings_field($v[ 'id' ], $v[ 'label' ], $v[ 'callback' ], $section_id, $section_id, array( 'id' => $v[ 'id' ], 'desc' => (isset($v[ 'desc' ]) ? $v[ 'desc' ] : ''), 'setting_id' => $setting_id, 'class' => (isset($v[ 'class' ]) ? $v[ 'class' ] : ''), 'type' => $v[ 'type' ], 'default_value' => (isset($v[ 'default_value' ]) ? $v[ 'default_value' ] : ''), 'option_values' => (isset($v[ 'option_values' ]) ? $v[ 'option_values' ] : '') )); } } } /** * Create a field based on the field type passed in. * * @since 0.1.0 */ public function field_machine($args) { extract($args); //$id, $desc, $setting_id, $class, $type, $default_value, $option_values // Load defaults $defaults = array( ); foreach (seed_csp4_get_options() as $k) { switch ($k[ 'type' ]) { case 'setting': case 'section': case 'tab': break; default: if (isset($k[ 'default_value' ])) { $defaults[ $k[ 'id' ] ] = $k[ 'default_value' ]; } } } $options = get_option($setting_id); $options = wp_parse_args($options, $defaults); $path = SEED_CSP4_PLUGIN_PATH . 'framework/field-types/' . $type . '.php'; if (file_exists($path)) { // Show Field include($path); // Show description if (!empty($desc)) { echo "<small class='description'>{$desc}</small>"; } } } /** * Validates user input before we save it via the Options API. If error add_setting_error * * @since 0.1.0 * @param array $input Contains all the values submitted to the POST. * @return array $input Contains sanitized values. * @todo Figure out best way to validate values. */ public function validate_machine($input) { $option_page = $_POST['option_page']; foreach (seed_csp4_get_options() as $k) { switch ($k[ 'type' ]) { case 'menu': case 'setting': if (isset($k['id'])) { $setting_id = $k['id']; } // no break case 'section': case 'tab': break; default: if (!empty($k[ 'validate' ]) && $setting_id == $option_page) { $validation_rules = explode(',', $k[ 'validate' ]); foreach ($validation_rules as $v) { $path = SEED_CSP4_PLUGIN_PATH . 'framework/validations/' . $v . '.php'; if (file_exists($path)) { // Defaults Values $is_valid = true; $error_msg = ''; // Test Validation include($path); // Is it valid? if ($is_valid === false) { add_settings_error($k[ 'id' ], 'seedprod_error', $error_msg, 'error'); // Unset invalids unset($input[ $k[ 'id' ] ]); } } } //end foreach } } } return $input; } /** * Dummy function to be called by all sections from the Settings API. Define a custom function in the config. * * @since 0.1.0 * @return string Empty */ public function return_empty_string() { echo ''; } /** * SeedProd version of WP's do_settings_sections * * @since 0.1.0 */ public function do_settings_sections($page, $show_submit) { global $wp_settings_sections, $wp_settings_fields; if (!isset($wp_settings_sections) || !isset($wp_settings_sections[ $page ])) { return; } foreach ((array) $wp_settings_sections[ $page ] as $section) { echo "<h3 class='hndle'>{$section['title']}</h3>\n"; echo '<div class="inside">'; call_user_func($section[ 'callback' ], $section); if (!isset($wp_settings_fields) || !isset($wp_settings_fields[ $page ]) || !isset($wp_settings_fields[ $page ][ $section[ 'id' ] ])) { continue; } echo '<table class="form-table">'; $this->do_settings_fields($page, $section[ 'id' ]); echo '</table>'; if ($show_submit): ?> <p> <input name="submit" type="submit" value="<?php _e('Save All Changes', 'coming-soon'); ?>" class="button-primary" /> </p> <?php endif; echo '</div>'; } } public function do_settings_fields($page, $section) { global $wp_settings_fields; if (!isset($wp_settings_fields) || !isset($wp_settings_fields[$page]) || !isset($wp_settings_fields[$page][$section])) { return; } foreach ((array) $wp_settings_fields[$page][$section] as $field) { echo '<tr valign="top">'; if (!empty($field['args']['label_for'])) { echo '<th scope="row"><label for="' . $field['args']['label_for'] . '">' . $field['title'] . '</label></th>'; } else { echo '<th scope="row"><strong>' . $field['title'] . '</strong><!--<br>'.$field['args']['desc'].'--></th>'; } echo '<td>'; call_user_func($field['callback'], $field['args']); echo '</td>'; echo '</tr>'; } } } add_action('admin_head', 'seed_csp4_set_user_settings'); function seed_csp4_set_user_settings() { if (isset($_GET['page']) && $_GET['page'] == 'seed_csp4') { $user_id = get_current_user_id(); $options = get_user_option('user-settings', $user_id); parse_str($options, $user_settings); $user_settings['imgsize'] = 'full'; update_user_option($user_id, 'user-settings', http_build_query($user_settings), false); update_user_option($user_id, 'user-settings-time', time(), false); } } function seed_csp4_plugins_active(){ // check if plugin is installed $am_plugins = array( 'rafflepress/rafflepress.php' => 'rafflepress' , 'rafflepress-pro/rafflepress-pro.php' => 'rafflepress-pro' , ); $all_plugins = get_plugins(); $response = array(); foreach ($am_plugins as $slug => $label) { if (array_key_exists($slug, $all_plugins)) { if (is_plugin_active($slug)) { $response[$label] = 'Active'; } else { $response[$label] = 'Inactive'; } } else { $response[$label]= 'Not Installed'; } } return $response; } function seed_csp4_disable_admin_notices() { global $wp_filter; if ( ! empty( $wp_filter['user_admin_notices']->callbacks ) && is_array( $wp_filter['user_admin_notices']->callbacks ) ) { foreach ( $wp_filter['user_admin_notices']->callbacks as $priority => $hooks ) { foreach ( $hooks as $name => $arr ) { if ( is_object( $arr['function'] ) && $arr['function'] instanceof Closure ) { unset( $wp_filter['user_admin_notices']->callbacks[ $priority ][ $name ] ); continue; } if ( ! empty( $arr['function'][0] ) && is_object( $arr['function'][0] ) && strpos( strtolower( get_class( $arr['function'][0] ) ), 'TGM' ) !== false ) { continue; } if ( ! empty( $name ) && strpos( $name, 'TGM' ) === false ) { unset( $wp_filter['user_admin_notices']->callbacks[ $priority ][ $name ] ); } } } } if ( ! empty( $wp_filter['admin_notices']->callbacks ) && is_array( $wp_filter['admin_notices']->callbacks ) ) { foreach ( $wp_filter['admin_notices']->callbacks as $priority => $hooks ) { foreach ( $hooks as $name => $arr ) { if ( is_object( $arr['function'] ) && $arr['function'] instanceof Closure ) { unset( $wp_filter['admin_notices']->callbacks[ $priority ][ $name ] ); continue; } if ( ! empty( $arr['function'][0] ) && is_object( $arr['function'][0] ) && strpos( strtolower( get_class( $arr['function'][0] ) ), 'TGM' ) !== false ) { continue; } if ( ! empty( $name ) && strpos( $name, 'TGM' ) === false ) { unset( $wp_filter['admin_notices']->callbacks[ $priority ][ $name ] ); } } } } if ( ! empty( $wp_filter['all_admin_notices']->callbacks ) && is_array( $wp_filter['all_admin_notices']->callbacks ) ) { foreach ( $wp_filter['all_admin_notices']->callbacks as $priority => $hooks ) { foreach ( $hooks as $name => $arr ) { if ( is_object( $arr['function'] ) && $arr['function'] instanceof Closure ) { unset( $wp_filter['all_admin_notices']->callbacks[ $priority ][ $name ] ); continue; } if ( ! empty( $arr['function'][0] ) && is_object( $arr['function'][0] ) && strpos( strtolower( get_class( $arr['function'][0] ) ), 'TGM' ) !== false ) { continue; } if ( ! empty( $name ) && strpos( $name, 'TGM' ) === false ) { unset( $wp_filter['all_admin_notices']->callbacks[ $priority ][ $name ] ); } } } } } if (!empty($_GET['page']) && strpos($_GET['page'], 'seed_csp4') !== false) { //add_action('admin_print_scripts', 'seed_csp4_disable_admin_notices'); }