class mk_control_panel { public function __construct() { $this->store_theme_current_version(); $this->api_url = 'https://artbees.net/api/v1/'; add_filter( 'upload_mimes', array( &$this, 'mime_types' ) ); add_filter( 'getimagesize_mimes_to_exts', array( &$this, 'mime_to_ext' ) ); add_action( 'wp_ajax_mka_cp_load_pane_action', array( & $this, 'mka_cp_load_pane_action' ) ); add_action( 'wp_ajax_mka_cp_register_revoke_api_action', array( &$this, 'mka_cp_register_revoke_api_action' ) ); add_action( 'wp_ajax_abb_save_image_sizes', array( &$this, 'abb_save_image_sizes' ) ); add_action( 'wp_ajax_abb_get_icon_list_action', array( &$this, 'abb_get_icon_list_action' ) ); $this->mk_verify_envato_hosted(); } /** * This hook will allow WordPress to accept .zip formats in media library * * @author Bob Ulusoy */ public function mime_types( $mimes ) { $mimes['zip'] = 'application/zip'; return $mimes; } /** * Map the "image/vnd.microsoft.icon" MIME type to the ico file extension, instead of * modifying the expected MIME types of WordPress in the WordPress wp_get_mime_types() * function. * * This is work-around for a bug in WordPress when the PHP version returns MIME * type of "image/vnd.microsoft.icon" instead of "image/x-icon" * that WordPress expects. * * @author Dominique Mariano * * @since 5.6 Introduced. */ public function mime_to_ext( $mimes_to_text ) { $mimes_to_text['image/vnd.microsoft.icon'] = 'ico'; return $mimes_to_text; } public function get_image_size_data() { $options = get_option( IMAGE_SIZE_OPTION ); if ( empty( $options ) ) { $options = array( array( 'size_w' => 500, 'size_h' => 500, 'size_n' => 'Image Size 500x500', 'size_c' => 'on', ), ); } return $options; } public function abb_save_image_sizes() { check_ajax_referer( 'ajax-image-sizes-options', 'security' ); $options = isset( $_POST['options'] ) ? $_POST['options'] : array(); $options_array = array(); if ( ! empty( $options ) ) { foreach ( $options as $sizes ) { parse_str( $sizes, $output ); $options_array[] = $output; } } if ( update_option( IMAGE_SIZE_OPTION, $options_array ) ) { update_option( THEME_OPTIONS_BUILD, uniqid() ); wp_die( 1 ); } else { wp_die( 2 ); } } public function abb_get_icon_list_action() { include_once( 'icons-list.php' ); $from = isset( $_POST['from'] ) ? $_POST['from'] : 0; $count = isset( $_POST['count'] ) ? $_POST['count'] : 500; $category = isset( $_POST['category'] ) ? $_POST['category'] : false; $keyword = isset( $_POST['keyword'] ) ? $_POST['keyword'] : false; if ( ! empty( $category ) ) { $mk_icon_list = $this->get_icon_by_library( $mk_icon_list, $category ); } if ( ! empty( $keyword ) ) { $mk_icon_list = $this->get_icon_by_keyword( $mk_icon_list, $keyword ); } $prepare_list = array_slice( $mk_icon_list, $from, $count ); $return_count = count( $prepare_list ); $response = array( 'status' => true, 'return_count' => $return_count, 'data' => $this->generate_icon_list( $prepare_list ), ); wp_die( json_encode( $response ) ); } public function generate_icon_list( $library ) { $icon_html = ''; if ( ! empty( $library ) ) { foreach ( $library as $icon ) { $icon_html .= '
' . Mk_SVG_Icons::get_svg_icon_by_class_name( false, $icon['n'], 32 ) . '
'; } } return $icon_html; } public function get_icon_by_library( $library, $category ) { if ( $category ) { $new_list = array(); foreach ( $library as $icon ) { if ( $icon['l'] == $category ) { $new_list[] = $icon; } } return $new_list; } return $library; } public function get_icon_by_keyword( $library, $keyword ) { if ( $keyword ) { $new_list = array(); foreach ( $library as $icon ) { if ( strpos( $icon['n'], $keyword ) !== false ) { $new_list[] = $icon; } } return $new_list; } return $library; } /** * * Artbees API Key Verifier * * @param string $apikey Api key. * @since Updated 6.0.2 Added Envato parameter for api verification. * @return array. */ public function verify_artbees_apikey( $apikey ) { return true; $envato = ( defined( 'SUBSCRIPTION_CODE' ) && defined( 'ENVATO_HOSTED_SITE' ) ) ? true : false; $data = array( 'timeout' => 10, 'httpversion' => '1.1', 'body' => array( 'apikey' => $apikey, 'domain' => $_SERVER['SERVER_NAME'], 'envato' => $envato, ), ); $query = wp_remote_post( $this->api_url . 'verify', $data ); if ( ! is_wp_error( $query ) ) { $result = json_decode( $query['body'], true ); return $result; } return array( 'message' => $query->get_error_message() . ' Please contact Artbees Support', ); } /** * Gets the result for api key verification. * * @param string $api_key api key string. * @return array|mixed|object returns false if testdrive mod is defined or disable test drive session is true. * * @author Ugur Mirza ZEYREK * @copyright Artbees LTD (c) * @link http://artbees.net * @since Version 6.0 Added for test drive specific sites. */ private function mka_cp_get_api_result( $api_key ) { $mk_testdrive = ( defined( 'MK_TESTDRIVE' ) && true === MK_TESTDRIVE ); $mk_dis_td_session = ( isset( $_SESSION['mk_disable_testdrive'] ) && 'true' === $_SESSION['mk_disable_testdrive'] ); $result['is_verified'] = false; if ( false === $mk_testdrive || true === $mk_dis_td_session ) { $result = $this->verify_artbees_apikey( $api_key ); } return $result; } /** * Verifies envato hosted users. * @since 6.0.2 * @author Ugur Mirza Zeyrek */ private function mk_verify_envato_hosted() { if ( defined( 'ENVATO_HOSTED_SITE' ) && defined( 'SUBSCRIPTION_CODE' ) ) { $api_key = SUBSCRIPTION_CODE; $result = $this->mka_cp_get_api_result( $api_key ); if ( $result['is_verified'] ) { update_option( 'artbees_api_key', $api_key, 'yes' ); $message = __( 'Your product registration was successful.', 'mk_framework' ); $status = true; } else { delete_option( 'artbees_api_key' ); $message = __( 'Your API key could not be verified. ', 'mk_framework' ) . (isset( $result['message'] ) ? $result['message'] : __( 'An error occured', 'mk_framework' )) . '.'; $status = false; } } } public function mka_cp_register_revoke_api_action() { check_ajax_referer( 'mka-cp-ajax-register-api', 'security' ); $method = $_POST['method']; if ( $method == 'register' ) { $api_key = $_POST['api_key']; $result = $this->mka_cp_get_api_result( $api_key ); if ( $result['is_verified'] ) { update_option( 'artbees_api_key', $api_key, 'yes' ); $message = __( 'Your product registration was successful.', 'mk_framework' ); $status = true; } else { delete_option( 'artbees_api_key' ); $message = __( 'Your API key could not be verified. ', 'mk_framework' ) . ( isset( $result['message'] ) ? $result['message'] : __( 'An error occured', 'mk_framework' ) ) . '.'; $status = false; } } elseif ( $method == 'revoke' ) { delete_option( 'artbees_api_key' ); $message = __( 'Your API key has been successfully revoked.', 'mk_framework' ); $status = true; } echo json_encode( array( 'message' => $message, 'status' => $status, ) ); wp_die(); } /** * Stores theme current version into options table to be used in multiple instances */ public function store_theme_current_version() { $theme_data = wp_get_theme( get_option( 'template' ) ); $theme_version = $theme_data->Version; if ( get_option( 'mk_jupiter_theme_current_version' ) != $theme_version ) { update_option( 'mk_jupiter_theme_current_version', $theme_version ); } } /** * * * Check if Current Customer is verified */ public function is_verified_artbees_customer( $localhost = true ) { return true; $result = $this->verify_artbees_apikey( get_option( 'artbees_api_key' ) ); if ( defined( 'MK_DEV' ) ) { return true; } if ( self::isLocalHost() && $localhost == true ) { return true; } return ( isset( $result['status'] ) && 202 == $result['status'] ) ? true : false; } public function is_api_key_exists( $localhost = true ) { $api_key = get_option( 'artbees_api_key' ); if ( ! empty( $api_key ) ) { return true; } return false; } public function mka_cp_load_pane_action() { $slug = esc_attr( $_POST['slug'] ); ob_start(); include_once( THEME_CONTROL_PANEL . "/v2/panes/{$slug}.php" ); $pane_html = ob_get_clean(); wp_send_json_success( $pane_html ); wp_die(); } /** * Fetch Announcements from artbees themes API, store them in transients. So they get updated once a day * * @copyright ArtbeesLTD (c) * @link http://artbees.net * @since Version 5.1 * @last_update Version 5.1 * @package artbees * @author Bob Ulusoy */ public function get_announcements() { // set_transient('mk_artbees_themes_announcements', null); if ( false == get_transient( 'mk_artbees_themes_announcements' ) ) { global $wp_version; $data = array( 'user-agent' => 'WordPress/' . $wp_version . '; ' . esc_url( home_url( '/' ) ), ); $raw_response = wp_remote_get( $this->api_url . 'announcements', $data ); if ( ! is_wp_error( $raw_response ) && ($raw_response['response']['code'] == 200) ) { $response = $raw_response['body']; } else { $response = is_wp_error( $raw_response ); } // Transient will be cleared after 1 day. set_transient( 'mk_artbees_themes_announcements', $response, DAY_IN_SECONDS ); } return unserialize( get_transient( 'mk_artbees_themes_announcements' ) ); } private static function let_to_num( $size ) { $l = substr( $size, -1 ); $ret = substr( $size, 0, -1 ); switch ( strtoupper( $l ) ) { case 'P': $ret *= 1024; case 'T': $ret *= 1024; case 'G': $ret *= 1024; case 'M': $ret *= 1024; case 'K': $ret *= 1024; } return $ret; } public static function makeBoolStr( $var ) { if ( $var == false || $var == 'false' || $var == 0 || $var == '0' || $var == '' || empty( $var ) ) { return 'false'; } else { return 'true'; } } public static function isLocalHost() { return ($_SERVER['REMOTE_ADDR'] === '127.0.0.1' || $_SERVER['REMOTE_ADDR'] === 'localhost' || $_SERVER['REMOTE_ADDR'] === '::1') ? 1 : 0; } public static function isWpDebug() { return (defined( 'WP_DEBUG' ) && WP_DEBUG == true); } public static function compileSystemStatus( $json_output = false, $remote_checks = false ) { global $wpdb; $sysinfo = array(); $sysinfo['home_url'] = esc_url( home_url( '/' ) ); $sysinfo['site_url'] = esc_url( site_url( '/' ) ); // Only is a file-write check $sysinfo['wp_content_url'] = WP_CONTENT_URL; $sysinfo['wp_ver'] = get_bloginfo( 'version' ); $sysinfo['wp_multisite'] = is_multisite(); $sysinfo['permalink_structure'] = get_option( 'permalink_structure' ) ? get_option( 'permalink_structure' ) : 'Default'; $sysinfo['front_page_display'] = get_option( 'show_on_front' ); if ( $sysinfo['front_page_display'] == 'page' ) { $front_page_id = get_option( 'page_on_front' ); $blog_page_id = get_option( 'page_for_posts' ); $sysinfo['front_page'] = $front_page_id != 0 ? get_the_title( $front_page_id ) . ' (#' . $front_page_id . ')' : 'Unset'; $sysinfo['posts_page'] = $blog_page_id != 0 ? get_the_title( $blog_page_id ) . ' (#' . $blog_page_id . ')' : 'Unset'; } $sysinfo['wp_mem_limit']['raw'] = self::let_to_num( WP_MEMORY_LIMIT ); $sysinfo['wp_mem_limit']['size'] = size_format( $sysinfo['wp_mem_limit']['raw'] ); $sysinfo['db_table_prefix'] = 'Length: ' . strlen( $wpdb->prefix ) . ' - Status: ' . (strlen( $wpdb->prefix ) > 16 ? 'ERROR: Too long' : 'Acceptable'); $sysinfo['wp_debug'] = 'false'; if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { $sysinfo['wp_debug'] = 'true'; } $sysinfo['wp_lang'] = get_locale(); if ( ! class_exists( 'Browser' ) ) { $file_path = pathinfo( __FILE__ ); require_once $file_path['dirname'] . '/browser.php'; } $browser = new Browser(); $sysinfo['browser'] = array( 'agent' => $browser->getUserAgent(), 'browser' => $browser->getBrowser(), 'version' => $browser->getVersion(), 'platform' => $browser->getPlatform(), // 'mobile' => $browser->isMobile() ? 'true' : 'false', ); $sysinfo['server_info'] = esc_html( $_SERVER['SERVER_SOFTWARE'] ); $sysinfo['localhost'] = self::makeBoolStr( self::isLocalHost() ); $sysinfo['php_ver'] = function_exists( 'phpversion' ) ? esc_html( phpversion() ) : 'phpversion() function does not exist.'; $sysinfo['abspath'] = ABSPATH; if ( function_exists( 'ini_get' ) ) { $sysinfo['php_mem_limit'] = size_format( self::let_to_num( ini_get( 'memory_limit' ) ) ); $sysinfo['php_post_max_size'] = size_format( self::let_to_num( ini_get( 'post_max_size' ) ) ); $sysinfo['php_time_limit'] = ini_get( 'max_execution_time' ); $sysinfo['php_max_input_var'] = ini_get( 'max_input_vars' ); $sysinfo['suhosin_request_max_vars'] = ini_get( 'suhosin.request.max_vars' ); $sysinfo['suhosin_post_max_vars'] = ini_get( 'suhosin.post.max_vars' ); $sysinfo['php_display_errors'] = self::makeBoolStr( ini_get( 'display_errors' ) ); } $sysinfo['suhosin_installed'] = extension_loaded( 'suhosin' ); $sysinfo['mysql_ver'] = $wpdb->db_version(); $sysinfo['max_upload_size'] = size_format( wp_max_upload_size() ); $sysinfo['def_tz_is_utc'] = 'true'; if ( date_default_timezone_get() !== 'UTC' ) { $sysinfo['def_tz_is_utc'] = 'false'; } $sysinfo['fsockopen_curl'] = 'false'; if ( function_exists( 'fsockopen' ) || function_exists( 'curl_init' ) ) { $sysinfo['fsockopen_curl'] = 'true'; } $sysinfo['soap_client'] = 'false'; if ( class_exists( 'SoapClient' ) ) { $sysinfo['soap_client'] = 'true'; } $sysinfo['dom_document'] = 'false'; if ( class_exists( 'DOMDocument' ) ) { $sysinfo['dom_document'] = 'true'; } $sysinfo['gzip'] = 'false'; if ( is_callable( 'gzopen' ) ) { $sysinfo['gzip'] = 'true'; } $sysinfo['mbstring'] = 'false'; if ( extension_loaded( 'mbstring' ) && function_exists( 'mb_eregi' ) && function_exists( 'mb_ereg_match' ) ) { $sysinfo['mbstring'] = 'true'; } $sysinfo['simplexml'] = 'false'; if ( class_exists( 'SimpleXMLElement' ) && function_exists( 'simplexml_load_string' ) ) { $sysinfo['simplexml'] = 'true'; } $sysinfo['phpxml'] = 'false'; if ( function_exists( 'xml_parse' ) ) { $sysinfo['phpxml'] = 'true'; } if ( $remote_checks == true ) { $response = wp_remote_post( 'https://www.paypal.com/cgi-bin/webscr', array( 'sslverify' => false, 'timeout' => 60, 'user-agent' => 'MkFramework/', 'body' => array( 'cmd' => '_notify-validate', ), ) ); if ( ! is_wp_error( $response ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 ) { $sysinfo['wp_remote_post'] = 'true'; $sysinfo['wp_remote_post_error'] = ''; } else { $sysinfo['wp_remote_post'] = 'false'; try { if ( is_wp_error( $response ) ) { $sysinfo['wp_remote_post_error'] = $response->get_error_message(); } } catch ( Exception $e ) { $sysinfo['wp_remote_post_error'] = $e->getMessage(); } } $response = wp_remote_get( 'http://reduxframework.com/wp-admin/admin-ajax.php?action=get_redux_extensions' ); if ( ! is_wp_error( $response ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 ) { $sysinfo['wp_remote_get'] = 'true'; $sysinfo['wp_remote_get_error'] = ''; } else { $sysinfo['wp_remote_get'] = 'false'; try { if ( is_wp_error( $response ) ) { $sysinfo['wp_remote_get_error'] = $response->get_error_message(); } } catch ( Exception $e ) { $sysinfo['wp_remote_get_error'] = $e->getMessage(); } } } $active_plugins = (array) get_option( 'active_plugins', array() ); if ( is_multisite() ) { $active_plugins = array_merge( $active_plugins, get_site_option( 'active_sitewide_plugins', array() ) ); } $sysinfo['plugins'] = array(); foreach ( $active_plugins as $plugin ) { $plugin_data = @get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin ); $plugin_name = esc_html( $plugin_data['Name'] ); $sysinfo['plugins'][ $plugin_name ] = $plugin_data; } $active_theme = wp_get_theme(); $sysinfo['theme']['name'] = $active_theme->Name; $sysinfo['theme']['version'] = $active_theme->Version; $sysinfo['theme']['author_uri'] = $active_theme->{'Author URI'}; $sysinfo['theme']['is_child'] = self::makeBoolStr( is_child_theme() ); if ( is_child_theme() ) { $parent_theme = wp_get_theme( $active_theme->Template ); $sysinfo['theme']['parent_name'] = $parent_theme->Name; $sysinfo['theme']['parent_version'] = $parent_theme->Version; $sysinfo['theme']['parent_author_uri'] = $parent_theme->{'Author URI'}; } return $sysinfo; } } new mk_control_panel(); Covid-19 Response and Recovery - Nature's Spring Foundation Inc.

COVID-19 Response Effort

The health crisis we are facing with the Covid-19 pandemic posed high risks to communities at a global scale. Millions of people are affected not only in terms of health but also with livelihood, food security, waste management and education, among others.

Nature’s Spring Foundation, Inc. has always seen its pivotal role in contributing to the Covid-19 response efforts. We are here to give the best of our initiatives in filling in the gap and supporting the frontliners and the marginalized sectors.

The Environmental Frontliners, our Waste Collectors

With or without a health crisis, the waste collectors face many occupational risks every day. This includes exposure to health hazards such as the Covid-19 just to make sure that our wastes are managed properly. We may not often see them in the spotlight from the news, they work around the clock behind the scenes and serve as one of the frontliners for the environment.

The foundation has always regarded the waste collectors as one of its priority. Hence, we provided hygiene kits and grocery items in the form of gift checks to the 294 waste collectors from all of the barangays in Mandaue City on April 17-21, 2020.

Nature’s Spring Foundation, Inc. tapped the Colonnade Supermarket to allow them to purchase grocery and hygiene items only at a discounted price. Each waste collector received a total of 700 pesos, with a 500-peso worth of grocery items and a 200-peso worth of hygiene kits that will aid them in the everyday needs of their respective families and work in the midst of this health crisis. The gift checks have no expiry date and considered as a cash payment when buying items at the nearest Colonnade supermarket in Mandaue City.

The Environmental Frontliners, our Waste Collectors

With or without a health crisis, the waste collectors face many occupational risks every day. This includes exposure to health hazards such as the Covid-19 just to make sure that our wastes are managed properly. We may not often see them in the spotlight from the news, they work around the clock behind the scenes and serve as one of the frontliners for the environment.

The foundation has always regarded the waste collectors as one of its priority. Hence, we provided hygiene kits and grocery items in the form of gift checks to the 294 waste collectors from all of the barangays in Mandaue City on April 17-21, 2020.

Nature’s Spring Foundation, Inc. tapped the Colonnade Supermarket to allow them to purchase grocery and hygiene items only at a discounted price. Each waste collector received a total of 700 pesos, with a 500-peso worth of grocery items and a 200-peso worth of hygiene kits that will aid them in the everyday needs of their respective families and work in the midst of this health crisis. The gift checks have no expiry date and considered as a cash payment when buying items at the nearest Colonnade supermarket in Mandaue City.

NSFI donates PPEs to Public, Private Hospitals in VisMin

Through the partnership with the University of the Philippines Medical Alumni Society or UP MAS, Nature’s Spring Foundation, Inc. has granted 2 million pesos worth of Personal Protective Equipment to the hospitals, medical centers and other frontline institutions including correctional facilities and barangay/municipal Covid-19 centers in the Visayas and Mindanao areas.

According to Dr. Arcelin Piramide, focal person from UP MAS, at least 20 hospitals and other frontline groups in the areas of Cebu, Siquijor, Bohol, Ozamis City, Iligan City and Butuan City were already distributed with PPEs to date.

These hospitals and centers catered to Covid-19 related patients (confirmed or suspected cases) and expressed a shortage of isolation gowns, taffeta jumpsuits, gloves, boots, face shields, goggles, KN95 masks, surgical masks and gallons of alcohol. Nature’s Spring Foundation, Inc. and UP Mas has also provided Covid-19 mobile hotline phones to barangays with rising Covid-19 cases.

The initiative of UP MAS has also paved way for the other private sectors to donate quality Personal Protective Equipment in the other hospitals and centers nationwide. The group is also set to deliver more PPEs in the other areas of the country.

NSFI donates PPEs to Public, Private Hospitals in VisMin

Through the partnership with the University of the Philippines Medical Alumni Society or UP MAS, Nature’s Spring Foundation, Inc. has granted 2 million pesos worth of Personal Protective Equipment to the hospitals, medical centers and other frontline institutions including correctional facilities and barangay/municipal Covid-19 centers in the Visayas and Mindanao areas.

According to Dr. Arcelin Piramide, focal person from UP MAS, at least 20 hospitals and other frontline groups in the areas of Cebu, Siquijor, Bohol, Ozamis City, Iligan City and Butuan City were already distributed with PPEs to date.

These hospitals and centers catered to Covid-19 related patients (confirmed or suspected cases) and expressed a shortage of isolation gowns, taffeta jumpsuits, gloves, boots, face shields, goggles, KN95 masks, surgical masks and gallons of alcohol. Nature’s Spring Foundation, Inc. and UP Mas has also provided Covid-19 mobile hotline phones to barangays with rising Covid-19 cases.

The initiative of UP MAS has also paved way for the other private sectors to donate quality Personal Protective Equipment in the other hospitals and centers nationwide. The group is also set to deliver more PPEs in the other areas of the country.