2015 lines
70 KiB
PHP
2015 lines
70 KiB
PHP
<?php
|
|
/**
|
|
* MainWP Hooks
|
|
*
|
|
* @package MainWP/Dashboard
|
|
*/
|
|
|
|
namespace MainWP\Dashboard;
|
|
|
|
// phpcs:disable Generic.Metrics.CyclomaticComplexity -- complexity.
|
|
|
|
/**
|
|
* Class MainWP_Hooks
|
|
*
|
|
* @package MainWP\Dashboard
|
|
*/
|
|
class MainWP_Hooks { // phpcs:ignore Generic.Classes.OpeningBraceSameLine.ContentAfterBrace -- NOSONAR.
|
|
/**
|
|
* MainWP_Hooks constructor.
|
|
*
|
|
* Initialize MainWP_Hooks actions/filters upon creation of the object.
|
|
*
|
|
* @deprecated 4.0.7. Hook deprecation - Please use filter `mainwp_get_error_message` instead of `mainwp_getErrorMessage`.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_System_Utility::get_class_name()
|
|
* @uses \MainWP\Dashboard\MainWP_UI::get_class_name()
|
|
* @uses \MainWP\Dashboard\MainWP_Extensions_Handler::get_class_name()
|
|
* @uses \MainWP\Dashboard\MainWP_Install_Bulk::get_class_name()
|
|
*/
|
|
public function __construct() {
|
|
add_filter( 'mainwp_getspecificdir', array( MainWP_System_Utility::get_class_name(), 'get_mainwp_specific_dir' ), 10, 1 );
|
|
add_filter( 'mainwp_getmainwpdir', array( &$this, 'hook_get_mainwp_dir' ), 10, 3 );
|
|
add_filter( 'mainwp_is_multi_user', array( &$this, 'is_multi_user' ) );
|
|
add_filter( 'mainwp_qq2fileuploader', array( &$this, 'filter_qq2_file_uploader' ), 10, 2 );
|
|
add_action( 'mainwp_select_sites_box', array( &$this, 'hook_select_sites_box' ), 10, 12 );
|
|
add_action( 'mainwp_add_categories_box', array( &$this, 'hook_add_categories_box' ), 10, 1 );
|
|
add_action( 'mainwp_prepareinstallplugintheme', array( MainWP_Install_Bulk::get_class_name(), 'prepare_install' ) );
|
|
add_action( 'mainwp_performinstallplugintheme', array( MainWP_Install_Bulk::get_class_name(), 'perform_install' ) );
|
|
add_filter( 'mainwp_getwpfilesystem', array( MainWP_System_Utility::get_class_name(), 'get_wp_file_system' ) );
|
|
add_filter( 'mainwp_getspecificurl', array( MainWP_System_Utility::get_class_name(), 'get_mainwp_specific_url' ), 10, 1 );
|
|
add_filter( 'mainwp_getdownloadurl', array( MainWP_System_Utility::get_class_name(), 'get_download_url' ), 10, 2 );
|
|
add_action( 'mainwp_renderHeader', array( MainWP_UI::get_class_name(), 'render_header' ), 10, 2 );
|
|
add_action( 'mainwp_renderFooter', array( MainWP_UI::get_class_name(), 'render_footer' ), 10, 0 );
|
|
|
|
add_action( 'mainwp_notify_user', array( &$this, 'hook_notify_user' ), 10, 3 );
|
|
add_filter( 'mainwp_is_mainwp_page', array( MainWP_System::class, 'is_mainwp_pages' ) );
|
|
|
|
/**
|
|
* The actions has been deprecated.
|
|
*
|
|
* @deprecated 4.3 Please use actions: mainwp_action_activeplugin, mainwp_action_deactiveplugin ....
|
|
*/
|
|
add_action( 'mainwp_activePlugin', array( &$this, 'active_plugin' ), 10, 0 );
|
|
add_action( 'mainwp_deactivePlugin', array( &$this, 'deactive_plugin' ), 10, 0 );
|
|
add_action( 'mainwp_upgradePluginTheme', array( &$this, 'upgrade_plugin_theme' ), 10, 0 );
|
|
add_action( 'mainwp_deletePlugin', array( &$this, 'delete_plugin' ), 10, 0 );
|
|
add_action( 'mainwp_deleteTheme', array( &$this, 'delete_theme' ), 10, 0 );
|
|
// End.
|
|
|
|
/**
|
|
* Plugins/themes/core actions.
|
|
*
|
|
* @since 4.3
|
|
*/
|
|
add_action( 'mainwp_action_activeplugin', array( &$this, 'active_plugin' ), 10, 0 );
|
|
add_action( 'mainwp_action_deactiveplugin', array( &$this, 'deactive_plugin' ), 10, 0 );
|
|
add_action( 'mainwp_action_upgradeplugintheme', array( &$this, 'upgrade_plugin_theme' ), 10, 0 );
|
|
add_action( 'mainwp_action_deleteplugin', array( &$this, 'delete_plugin' ), 10, 0 );
|
|
add_action( 'mainwp_action_deletetheme', array( &$this, 'delete_theme' ), 10, 0 );
|
|
add_action( 'mainwp_upgrade_wp', array( &$this, 'upgrade_wp' ), 10, 0 );
|
|
// End.
|
|
|
|
add_filter( 'mainwp_get_user_extension', array( &$this, 'hook_get_user_extension' ), 10, 2 );
|
|
add_filter( 'mainwp_update_user_extension', array( &$this, 'update_user_extension' ), 10, 3 );
|
|
add_filter( 'mainwp_getwebsitesbyurl', array( &$this, 'get_websites_by_url' ) );
|
|
add_filter( 'mainwp_getWebsitesByUrl', array( &$this, 'get_websites_by_url' ) );
|
|
add_action( 'mainwp_manage_posts_get_edit', array( &$this, 'hook_posts_get_edit' ), 10, 2 );
|
|
add_action( 'mainwp_manage_posts_bulk_posting', array( &$this, 'hook_posts_bulk_posting' ), 10, 2 );
|
|
|
|
/**
|
|
* The mainwp_getErrorMessage filter has been deprecated.
|
|
*
|
|
* @deprecated 4.0.7. Please use filter mainwp_get_error_message.
|
|
*/
|
|
add_filter( 'mainwp_getErrorMessage', array( &$this, 'get_error_message' ), 10, 2 );
|
|
add_filter( 'mainwp_get_error_message', array( &$this, 'get_error_message' ), 10, 2 );
|
|
|
|
add_filter( 'mainwp_getwebsitesbygroupids', array( &$this, 'hook_get_websites_by_group_ids' ), 10, 2 );
|
|
|
|
add_filter( 'mainwp_cache_getcontext', array( &$this, 'cache_getcontext' ) );
|
|
add_action( 'mainwp_cache_echo_body', array( &$this, 'cache_echo_body' ) );
|
|
add_action( 'mainwp_cache_init', array( &$this, 'cache_init' ) );
|
|
add_action( 'mainwp_cache_add_context', array( &$this, 'cache_add_context' ), 10, 2 );
|
|
add_action( 'mainwp_cache_add_body', array( &$this, 'cache_add_body' ), 10, 2 );
|
|
|
|
add_filter( 'mainwp_get_metaboxes_post', array( &$this, 'get_metaboxes_post' ), 10, 0 );
|
|
add_filter( 'mainwp_getnotificationemail', array( &$this, 'hook_notification_email' ), 10, 1 );
|
|
add_filter( 'mainwp_getformatemail', array( &$this, 'get_formated_email' ), 10, 3 );
|
|
add_filter( 'mainwp-extension-available-check', array( MainWP_Extensions_Handler::get_class_name(), 'is_extension_available' ) );
|
|
add_filter( 'mainwp_extension_is_activated', array( &$this, 'is_extension_activated' ), 10, 2 );
|
|
add_filter( 'mainwp_extension_is_pro_member', array( &$this, 'is_pro_member' ), 10, 1 );
|
|
|
|
/**
|
|
* Logging debug actions.
|
|
*/
|
|
add_action( 'mainwp_log_debug', array( &$this, 'mainwp_log_debug' ), 10, 1 );
|
|
add_action( 'mainwp_log_info', array( &$this, 'mainwp_log_info' ), 10, 1 );
|
|
add_action( 'mainwp_log_warning', array( &$this, 'mainwp_log_warning' ), 10, 1 );
|
|
add_action( 'mainwp_log_action', array( &$this, 'mainwp_log_action' ), 10, 4 );
|
|
add_action( 'mainwp_log_execution_time', array( &$this, 'mainwp_log_execution_time' ), 10, 1 );
|
|
// END.
|
|
|
|
add_filter( 'mainwp_getactivateextensionnotice', array( &$this, 'get_activate_extension_notice' ), 10, 1 );
|
|
add_action( 'mainwp_enqueue_meta_boxes_scripts', array( &$this, 'enqueue_meta_boxes_scripts' ), 10, 1 );
|
|
add_filter( 'mainwp_addsite', array( &$this, 'hook_add_site' ), 10, 1 );
|
|
add_filter( 'mainwp_deletesite', array( &$this, 'hook_delete_site' ), 10, 1 );
|
|
add_filter( 'mainwp_clonesite', array( &$this, 'filter_clone_site' ), 10, 6 );
|
|
add_filter( 'mainwp_delete_clonesite', array( &$this, 'filter_delete_clone_site' ), 10, 4 );
|
|
add_filter( 'mainwp_editsite', array( &$this, 'mainwp_edit_site' ), 10, 1 );
|
|
add_action( 'mainwp_add_sub_leftmenu', array( &$this, 'hook_add_sub_left_menu' ), 10, 6 );
|
|
add_filter( 'mainwp_getwebsiteoptions', array( &$this, 'hook_get_site_options' ), 10, 3 );
|
|
add_filter( 'mainwp_updatewebsiteoptions', array( &$this, 'hook_update_site_options' ), 10, 4 );
|
|
add_filter( 'mainwp_deletewebsiteoptions', array( &$this, 'hook_delete_site_options' ), 10, 2 );
|
|
|
|
add_filter( 'mainwp_getwebsitesbyuserid', array( &$this, 'hook_get_websites_by_user_id' ), 10, 5 );
|
|
add_filter( 'mainwp_getwebsite_by_id', array( &$this, 'hook_get_website_by_id' ), 10, 4 );
|
|
|
|
add_filter( 'mainwp_addgroup', array( MainWP_Extensions_Handler::get_class_name(), 'hook_add_group' ), 10, 3 );
|
|
add_filter( 'mainwp_getallposts', array( &$this, 'hook_get_all_posts' ), 10, 2 );
|
|
add_filter( 'mainwp_check_current_user_can', array( &$this, 'hook_current_user_can' ), 10, 3 );
|
|
add_filter( 'mainwp_escape_response_data', array( &$this, 'hook_escape_response' ), 10, 3 );
|
|
add_filter( 'mainwp_escape_content', array( &$this, 'hook_escape_content' ), 10, 3 );
|
|
|
|
add_filter( 'mainwp_db_query', array( &$this, 'hook_db_query' ), 10, 2 );
|
|
add_filter( 'mainwp_db_fetch_object', array( &$this, 'db_fetch_object' ), 10, 2 );
|
|
add_filter( 'mainwp_db_fetch_array', array( &$this, 'db_fetch_array' ), 10, 2 );
|
|
add_action( 'mainwp_db_data_seek', array( &$this, 'hook_db_data_seek' ), 10, 2 );
|
|
add_filter( 'mainwp_db_free_result', array( &$this, 'db_free_result' ), 10, 2 );
|
|
add_filter( 'mainwp_db_num_rows', array( &$this, 'db_num_rows' ), 10, 2 );
|
|
add_filter( 'mainwp_db_get_websites_for_current_user', array( &$this, 'db_get_websites_for_current_user' ), 10, 2 );
|
|
add_filter( 'mainwp_db_get_sql_websites_for_current_user', array( &$this, 'hook_get_sql_websites_by_params' ), 10, 2 );
|
|
|
|
// Sync website.
|
|
add_filter( 'mainwp_sync_website', array( &$this, 'hook_sync_website' ), 10, 3 );
|
|
|
|
add_action( 'mainwp_secure_request', array( &$this, 'hook_secure_request' ), 10, 2 );
|
|
add_filter( 'mainwp_check_security_request', array( &$this, 'hook_check_security_request' ), 10, 3 );
|
|
add_filter( 'mainwp_notification_get_settings', array( &$this, 'get_notification_settings' ), 10, 2 );
|
|
|
|
add_filter( 'mainwp_send_wp_mail', array( &$this, 'hook_send_wp_mail' ), 10, 5 );
|
|
add_filter( 'mainwp_notification_get_template_content', array( &$this, 'hook_get_template_html' ), 10, 3 );
|
|
add_filter( 'mainwp_sitestable_getcolumns', array( $this, 'hook_atarim_default_sitestable_column' ), 10, 1 );
|
|
add_filter( 'mainwp_sitestable_item', array( $this, 'hook_atarim_manage_sites_default_item' ), 10, 1 );
|
|
add_filter( 'mainwp_monitoring_sitestable_getcolumns', array( $this, 'hook_atarim_default_sitestable_column' ), 10, 1 );
|
|
add_filter( 'mainwp_monitoring_sitestable_item', array( $this, 'hook_atarim_manage_sites_default_item' ), 10, 1 );
|
|
add_filter( 'mainwp_clients_get_website_client_tokens', array( &$this, 'hook_get_website_client_tokens' ), 10, 2 );
|
|
add_filter( 'mainwp_secure_get_download_sig', array( &$this, 'hook_get_download_sig' ), 10, 2 );
|
|
add_action( 'mainwp_secure_download', array( &$this, 'hook_secure_download' ), 10, 3 );
|
|
add_action( 'mainwp_ajax_add_action', array( &$this, 'hook_ajax_add_action' ), 10, 2 );
|
|
add_filter( 'mainwp_get_plugin_icon', array( &$this, 'hook_get_plugin_icon' ), 10, 2 );
|
|
add_filter( 'mainwp_get_theme_icon', array( &$this, 'hook_get_theme_icon' ), 10, 2 );
|
|
add_filter( 'mainwp_get_dir_slug', array( &$this, 'hook_get_dir_slug' ), 10, 2 );
|
|
add_action( 'mainwp_do_widget_boxes', array( &$this, 'hook_do_widget_boxes' ), 10, 3 );
|
|
add_action( 'mainwp_add_widget_box', array( &$this, 'hook_add_widget_box' ), 10, 6 );
|
|
add_action( 'mainwp_render_modal_upload_icon', array( &$this, 'hook_render_modal_upload_icon' ), 10, 2 );
|
|
add_action( 'mainwp_render_plugin_details_modal', array( &$this, 'hook_render_plugin_details_modal' ), 10, 2 );
|
|
add_action( 'mainwp_render_updates', array( &$this, 'hook_render_updates' ), 10, 2 );
|
|
add_filter( 'mainwp_get_wp_client_by', array( &$this, 'hook_get_wp_client_by' ), 10, 4 );
|
|
|
|
/**
|
|
* Filter: mainwp_get_tokens_values
|
|
*
|
|
* Get tokens values for reports.
|
|
*
|
|
* @since 4.3.
|
|
*/
|
|
add_filter( 'mainwp_get_reports_group_values_website', array( MainWP_Reports_Helper::get_instance(), 'hook_get_reports_group_values' ), 10, 6 );
|
|
|
|
/**
|
|
* MainWP API hooks.
|
|
*
|
|
* @since 4.5.
|
|
*/
|
|
add_filter( 'mainwp_extension_get_activation_info', array( &$this, 'hook_get_activation_info' ), 10, 2 );
|
|
add_filter( 'mainwp_get_api_url', array( &$this, 'hook_get_api_url' ), 10, 1 );
|
|
add_filter( 'mainwp_hook_run_dashboard_action', array( &$this, 'hook_run_dashboard_action' ), 10, 2 );
|
|
|
|
/**
|
|
* Key encrypt hooks.
|
|
*
|
|
* @since 4.5.
|
|
*/
|
|
add_filter( 'mainwp_get_key_value', array( &$this, 'hook_get_key_value' ), 10, 3 );
|
|
add_filter( 'mainwp_update_key_value', array( &$this, 'hook_update_key_value' ), 10, 4 );
|
|
add_action( 'mainwp_delete_key_value', array( &$this, 'hook_delete_key_value' ), 10, 1 );
|
|
|
|
add_filter( 'mainwp_encrypt_key_value', array( &$this, 'hook_encrypt_key_value' ), 10, 4 );
|
|
add_filter( 'mainwp_decrypt_key_value', array( &$this, 'hook_decrypt_key_value' ), 10, 3 );
|
|
add_action( 'mainwp_delete_key_file', array( &$this, 'hook_delete_key_file' ), 10, 1 );
|
|
add_filter( 'mainwp_verify_ping_nonce', array( MainWP_Utility::class, 'hook_verify_ping_nonce' ), 10, 3 );
|
|
add_action( 'mainwp_fetch_url_authed', array( MainWP_Actions_Handler::instance(), 'hook_mainwp_fetch_url_authed' ), 10, 5 );
|
|
|
|
add_filter( 'mainwp_get_lookup_items', array( &$this, 'hook_get_lookup_items' ), 10, 4 );
|
|
add_filter( 'mainwp_insert_lookup_item', array( &$this, 'hook_insert_lookup_item' ), 10, 5 );
|
|
add_filter( 'mainwp_delete_lookup_items', array( &$this, 'hook_delete_lookup_items' ), 10, 3 );
|
|
add_filter( 'mainwp_get_indicator', array( &$this, 'hook_get_indicator' ), 10, 4 );
|
|
add_filter( 'mainwp_get_time_elapsed_string', array( &$this, 'hook_get_time_elapsed_string' ), 10, 2 );
|
|
|
|
add_action( 'mainwp_general_process_update', array( MainWP_DB::instance(), 'update_regular_process' ), 10, 1 );
|
|
add_action( 'mainwp_general_process_delete', array( MainWP_DB::instance(), 'delete_regular_process' ), 10, 4 );
|
|
add_filter( 'mainwp_general_process_get_process_by', array( &$this, 'hook_get_regular_process_by' ), 10, 4 );
|
|
}
|
|
|
|
/**
|
|
* Method get_instance().
|
|
*/
|
|
public static function get_instance() {
|
|
return new self();
|
|
}
|
|
|
|
/**
|
|
* Method mainwp_log_debug()
|
|
*
|
|
* MainWP debug log.
|
|
*
|
|
* @param string $text Debug text.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Logger::debug()
|
|
*/
|
|
public function mainwp_log_debug( $text ) {
|
|
MainWP_Logger::instance()->debug( $text );
|
|
}
|
|
|
|
/**
|
|
* Method mainwp_log_info()
|
|
*
|
|
* MainWP log info.
|
|
*
|
|
* @param string $text Info Text.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Logger::info()
|
|
*/
|
|
public function mainwp_log_info( $text ) {
|
|
MainWP_Logger::instance()->info( $text );
|
|
}
|
|
|
|
/**
|
|
* Method mainwp_log_warning()
|
|
*
|
|
* MainWP log warning.
|
|
*
|
|
* @param string $text Warning text.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Logger::warning()
|
|
*/
|
|
public function mainwp_log_warning( $text ) {
|
|
MainWP_Logger::instance()->warning( $text );
|
|
}
|
|
|
|
/**
|
|
* Method mainwp_log_action()
|
|
*
|
|
* MainWP log action.
|
|
*
|
|
* @param string $text Debug text.
|
|
* @param int $priority priority: -1 disabled, 0 - log, 1 - warning, 2 - info, 3 - debug.
|
|
* @param int $log_color Set color: 0 - LOG, 1 - WARNING, 2 - INFO, 3- DEBUG.
|
|
* @param bool $forced forced logging.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Logger::debug()
|
|
*/
|
|
public function mainwp_log_action( $text, $priority = 0, $log_color = 0, $forced = false ) {
|
|
if ( ! empty( $priority ) ) {
|
|
MainWP_Logger::instance()->log_action( $text, $priority, $log_color, $forced );
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Method mainwp_log_execution_time()
|
|
*
|
|
* MainWP log execution time.
|
|
*
|
|
* @param string $text Debug text.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Logger::debug()
|
|
*/
|
|
public function mainwp_log_execution_time( $text = '' ) {
|
|
MainWP_Logger::instance()->log_execution_time( $text );
|
|
}
|
|
|
|
/**
|
|
* Method enqueue_meta_boxes_scripts()
|
|
*
|
|
* Enqueue Scripts for all Meta boxes.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_System::enqueue_postbox_scripts()
|
|
*/
|
|
public function enqueue_meta_boxes_scripts() {
|
|
MainWP_System::enqueue_postbox_scripts();
|
|
}
|
|
|
|
/**
|
|
* Method hook_add_site()
|
|
*
|
|
* Hook to add Child Site.
|
|
*
|
|
* @param array $params site data fields: url, name, wpadmin, unique_id, groupids, ssl_verify, ssl_version,
|
|
* http_user, http_pass, websiteid - if edit site.
|
|
*
|
|
* @return array $ret data fields: response, siteid.
|
|
*
|
|
* @throws \MainWP_Exception Exception message.
|
|
*
|
|
* @since 3.2.2
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Manage_Sites_View::update_wp_site()
|
|
* @uses \MainWP\Dashboard\MainWP_Manage_Sites_View::add_wp_site()
|
|
* @uses \MainWP\Dashboard\MainWP_Utility::ctype_digit()
|
|
*/
|
|
public function hook_add_site( $params ) {
|
|
$ret = array();
|
|
|
|
if ( is_array( $params ) ) {
|
|
if ( isset( $params['websiteid'] ) && MainWP_Utility::ctype_digit( $params['websiteid'] ) ) {
|
|
$ret['siteid'] = MainWP_Manage_Sites_View::update_wp_site( $params );
|
|
return $ret;
|
|
} elseif ( isset( $params['url'] ) && isset( $params['wpadmin'] ) ) {
|
|
$website = MainWP_DB::instance()->get_websites_by_url( $params['url'] );
|
|
list( $message, $error, $site_id ) = MainWP_Manage_Sites_View::add_wp_site( $website, $params );
|
|
|
|
if ( '' !== $error ) {
|
|
return array( 'error' => $error );
|
|
}
|
|
$ret['response'] = $message;
|
|
$ret['siteid'] = $site_id;
|
|
}
|
|
}
|
|
|
|
return $ret;
|
|
}
|
|
|
|
/**
|
|
* Method is_pro_member()
|
|
*
|
|
* Check for inactive MainWP Extensions.
|
|
*
|
|
* @param mixed $input Input value.
|
|
*
|
|
* @return bool Activation notice.
|
|
*/
|
|
public static function is_pro_member( $input = false ) {
|
|
$info = get_option( 'mainwp_extensions_plan_info' );
|
|
if ( ! empty( $info ) ) {
|
|
$info = json_decode( $info, true );
|
|
if ( is_array( $info ) && isset( $info['plan_purchased'] ) && isset( $info['plan_status'] ) && 'active' === $info['plan_status'] && in_array( $info['plan_purchased'], array( 'monthly', 'yearly', 'lifetime' ) ) ) {
|
|
return true;
|
|
}
|
|
}
|
|
return $input;
|
|
}
|
|
|
|
|
|
/**
|
|
* Method hook_delete_site()
|
|
*
|
|
* Hook to delete Child Site.
|
|
*
|
|
* @param bool $site_id Child site ID.
|
|
*
|
|
* @return bool|array Return false if empty and return array error - Site not found | result - SUCCESS.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_System_Utility::get_wp_file_system()
|
|
* @uses \MainWP\Dashboard\MainWP_System_Utility::get_icons_dir()
|
|
*/
|
|
public function hook_delete_site( $site_id = false ) {
|
|
|
|
if ( empty( $site_id ) ) {
|
|
return false;
|
|
}
|
|
|
|
$sql = MainWP_DB::instance()->get_sql_website_by_id( $site_id );
|
|
$websites = MainWP_DB::instance()->query( $sql );
|
|
$site = MainWP_DB::fetch_object( $websites );
|
|
|
|
if ( empty( $site ) ) {
|
|
return array( 'error' => esc_html__( 'Not found the website', 'mainwp' ) );
|
|
}
|
|
$hasWPFileSystem = MainWP_System_Utility::get_wp_file_system();
|
|
|
|
/**
|
|
* WordPress files system object.
|
|
*
|
|
* @global object
|
|
*/
|
|
global $wp_filesystem;
|
|
|
|
if ( $hasWPFileSystem ) {
|
|
$favi = MainWP_DB::instance()->get_website_option( $site, 'favi_icon', '' );
|
|
if ( ! empty( $favi ) && ( false !== strpos( $favi, 'favi-' . $site->id . '-' ) ) ) {
|
|
$dirs = MainWP_System_Utility::get_icons_dir();
|
|
if ( $wp_filesystem->exists( $dirs[0] . $favi ) ) {
|
|
$wp_filesystem->delete( $dirs[0] . $favi );
|
|
}
|
|
}
|
|
}
|
|
|
|
MainWP_DB::instance()->remove_website( $site->id );
|
|
|
|
/** This action is documented in pages\page-mainwp-manage-sites-handler.php */
|
|
do_action( 'mainwp_delete_site', $site );
|
|
return array( 'result' => 'SUCCESS' );
|
|
}
|
|
|
|
/**
|
|
* Method filter_clone_site()
|
|
*
|
|
* Hook to clone site.
|
|
*
|
|
* @since 3.4.4
|
|
* @param mixed $pluginFile Plugin file.
|
|
* @param mixed $key Key.
|
|
* @param mixed $websiteid Child site ID.
|
|
* @param mixed $cloneid Clone site ID.
|
|
* @param mixed $clone_url Clone site URL.
|
|
* @param bool $force_update Force the update, true|false, Default: false.
|
|
*
|
|
* @return array Site array to clone.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Extensions_Handler::hook_clone_site()
|
|
*/
|
|
public function filter_clone_site( $pluginFile, $key, $websiteid, $cloneid, $clone_url, $force_update = false ) {
|
|
return MainWP_Extensions_Handler::hook_clone_site( $pluginFile, $key, $websiteid, $cloneid, $clone_url, $force_update );
|
|
}
|
|
|
|
/**
|
|
* Method filter_delete_clone_site()
|
|
*
|
|
* Hook to delete cloaned Child Site.
|
|
*
|
|
* @param mixed $pluginFile Plugin file.
|
|
* @param mixed $key Key.
|
|
* @param string $clone_url Clone site URL.
|
|
* @param bool $clone_site_id Clone site ID.
|
|
*
|
|
* @return array Site array to delete.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Extensions_Handler::hook_delete_clone_site()
|
|
*/
|
|
public function filter_delete_clone_site( $pluginFile, $key, $clone_url = '', $clone_site_id = false ) {
|
|
return MainWP_Extensions_Handler::hook_delete_clone_site( $pluginFile, $key, $clone_url, $clone_site_id );
|
|
}
|
|
|
|
/**
|
|
* Method mainwp_edit_site()
|
|
*
|
|
* Hook to edit Child Site.
|
|
*
|
|
* @param array $params site data fields: websiteid, name, wpadmin, unique_id.
|
|
*
|
|
* @return array $ret Child site ID.
|
|
*
|
|
* @throws \MainWP_Exception Exception message.
|
|
*
|
|
* @since 3.2.2
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Manage_Sites_View::update_wp_site()
|
|
* @uses \MainWP\Dashboard\MainWP_Utility::ctype_digit()
|
|
*/
|
|
public function mainwp_edit_site( $params ) {
|
|
$ret = array();
|
|
if ( is_array( $params ) && isset( $params['websiteid'] ) && MainWP_Utility::ctype_digit( $params['websiteid'] ) ) {
|
|
$ret['siteid'] = MainWP_Manage_Sites_View::update_wp_site( $params );
|
|
return $ret;
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
/**
|
|
* Method hook_add_sub_left_menu()
|
|
*
|
|
* Hook to add MainWP Left Menu item.
|
|
*
|
|
* @param string $title Menu title.
|
|
* @param string $slug Menu slug.
|
|
* @param string $href Menu link.
|
|
* @param integer $level Menu level.
|
|
* @param string $parent_key Parent menu.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Menu::add_left_menu()
|
|
*/
|
|
public function hook_add_sub_left_menu( $title, $slug, $href, $level = 1, $parent_key = 'mainwp_tab' ) {
|
|
$item = array(
|
|
'title' => $title,
|
|
'parent_key' => $parent_key,
|
|
'slug' => $slug,
|
|
'href' => $href,
|
|
);
|
|
MainWP_Menu::add_left_menu( $item, $level );
|
|
}
|
|
|
|
/**
|
|
* Method is_extension_activated()
|
|
*
|
|
* Check for inactive MainWP Extensions.
|
|
*
|
|
* @param mixed $input Input value.
|
|
* @param mixed $slug MainWP Extension to check.
|
|
*
|
|
* @return bool Activation notice.
|
|
*/
|
|
public function is_extension_activated( $input, $slug ) {
|
|
unset( $input );
|
|
return MainWP_Extensions_Handler::is_extension_activated( $slug );
|
|
}
|
|
|
|
|
|
/**
|
|
* Method get_activate_extension_notice()
|
|
*
|
|
* Check for inactive MainWP Extensions &
|
|
* return an activation warning message.
|
|
*
|
|
* @param mixed $pluginFile MainWP Extension to check.
|
|
*
|
|
* @return string Activation notice.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Extensions_Handler::is_extension_activated()
|
|
*/
|
|
public function get_activate_extension_notice( $pluginFile ) {
|
|
$active = MainWP_Extensions_Handler::is_extension_activated( $pluginFile );
|
|
if ( $active ) {
|
|
return false;
|
|
}
|
|
|
|
$activate_notices = get_user_option( 'mainwp_hide_activate_notices' );
|
|
if ( is_array( $activate_notices ) ) {
|
|
$slug = basename( $pluginFile, '.php' );
|
|
if ( isset( $activate_notices[ $slug ] ) ) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return sprintf( esc_html__( 'You have a MainWP extension that does not have an active API entered. This means you will not receive updates or support. Please visit the %1$sExtensions%2$s page and enter your API key.', 'mainwp' ), '<a href="admin.php?page=Extensions">', '</a>' );
|
|
}
|
|
|
|
/**
|
|
* Method cache_getcontext()
|
|
*
|
|
* Get cached search context for given page.
|
|
*
|
|
* @param string $page Current MainWP Page.
|
|
*
|
|
* @return array Cached Search Array.
|
|
*/
|
|
public function cache_getcontext( $page ) {
|
|
return MainWP_Cache::get_cached_context( $page );
|
|
}
|
|
|
|
/**
|
|
* Method cache_echo_body()
|
|
*
|
|
* Echo Cached Search Body.
|
|
*
|
|
* @param string $page Current MainWP Page.
|
|
*/
|
|
public function cache_echo_body( $page ) {
|
|
MainWP_Cache::echo_body( $page );
|
|
}
|
|
|
|
/**
|
|
* Method cache_init()
|
|
*
|
|
* Initiate search session variables for the current page.
|
|
*
|
|
* @param string $page Current MainWP Page.
|
|
*/
|
|
public function cache_init( $page ) {
|
|
MainWP_Cache::init_cache( $page );
|
|
}
|
|
|
|
/**
|
|
* Method cache_add_context()
|
|
*
|
|
* Hook to add time & Search Context session variable.
|
|
*
|
|
* @param string $page Current MainWP Page.
|
|
* @param mixed $context Time of search.
|
|
*/
|
|
public function cache_add_context( $page, $context ) {
|
|
MainWP_Cache::add_context( $page, $context );
|
|
}
|
|
|
|
/**
|
|
* Method cache_add_body()
|
|
*
|
|
* Hook to add Search Body Session variable.
|
|
*
|
|
* @param string $page Current MainWP Page.
|
|
* @param mixed $body Search body.
|
|
*/
|
|
public function cache_add_body( $page, $body ) {
|
|
MainWP_Cache::add_body( $page, $body );
|
|
}
|
|
|
|
/**
|
|
* Method hook_select_sites_box()
|
|
*
|
|
* Hook to select sites box.
|
|
*
|
|
* @param string $title Input title.
|
|
* @param string $type Input type, radio.
|
|
* @param bool $show_group Whether or not to show group, Default: true.
|
|
* @param bool $show_select_all Whether to show select all.
|
|
* @param string $class_style Default = ''.
|
|
* @param string $style Default = ''.
|
|
* @param array $selected_websites Selected Child Sites.
|
|
* @param array $selected_groups Selected Groups.
|
|
* @param bool $show_client Show Clients.
|
|
* @param array $selected_clients Selected Clients.
|
|
* @param mixed $post_id post ID.
|
|
* @param bool $show_create_tag Show create tag button.
|
|
*/
|
|
public function hook_select_sites_box( $title = '', $type = 'checkbox', $show_group = true, $show_select_all = true, $class_style = '', $style = '', $selected_websites = array(), $selected_groups = array(), $show_client = false, $selected_clients = array(), $post_id = false, $show_create_tag = true ) { //phpcs:ignore -- NOSONAR - compatible.
|
|
unset( $title );
|
|
$sel_params = array(
|
|
'type' => $type,
|
|
'show_group' => $show_group,
|
|
'show_select_all' => $show_select_all,
|
|
'class' => $class_style,
|
|
'style' => $style,
|
|
'selected_sites' => $selected_websites,
|
|
'selected_groups' => $selected_groups,
|
|
'show_client' => $show_client,
|
|
'selected_clients' => $selected_clients,
|
|
'post_id' => $post_id,
|
|
'show_create_tag' => $show_create_tag,
|
|
);
|
|
MainWP_UI_Select_Sites::select_sites_box( $sel_params );
|
|
}
|
|
|
|
/**
|
|
* Method hook_add_categories_box()
|
|
*
|
|
* General categories box.
|
|
*
|
|
* @param int $post_id Post ID.
|
|
*/
|
|
public function hook_add_categories_box( $post_id = false ) {
|
|
MainWP_System::instance()->metaboxes->add_categories( $post_id );
|
|
}
|
|
|
|
/**
|
|
* Method hook_notify_user()
|
|
*
|
|
* Hook to send user a notification.
|
|
*
|
|
* @param int $userId User ID.
|
|
* @param string $subject Email Subject.
|
|
* @param string $content Email Content.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Notification::send_notify_user()
|
|
*/
|
|
public function hook_notify_user( $userId, $subject, $content ) {
|
|
MainWP_Notification::send_notify_user( $userId, $subject, $content );
|
|
}
|
|
|
|
/**
|
|
* Method get_error_message()
|
|
*
|
|
* Hook to get error message.
|
|
*
|
|
* @param object $msg Error message.
|
|
* @param object $extra HTTP error message.
|
|
*
|
|
* @return string Error message.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Error_Helper::get_error_message()
|
|
*/
|
|
public function get_error_message( $msg, $extra ) {
|
|
return MainWP_Error_Helper::get_error_message( new MainWP_Exception( $msg, $extra ) );
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_user_extension()
|
|
*
|
|
* Hook to get user extension.
|
|
*
|
|
* @return object $row User extension.
|
|
*/
|
|
public function hook_get_user_extension() {
|
|
return MainWP_DB_Common::instance()->get_user_extension();
|
|
}
|
|
|
|
/**
|
|
* Method update_user_extension()
|
|
*
|
|
* Hook to update user extension.
|
|
*
|
|
* @param bool $input_value input filter value.
|
|
* @param string $option_name option name.
|
|
* @param mixed $option_value option value.
|
|
*
|
|
* @return bool true.
|
|
*/
|
|
public function update_user_extension( $input_value, $option_name, $option_value ) {
|
|
unset( $input_value );
|
|
$userExtension = MainWP_DB_Common::instance()->get_user_extension();
|
|
$userExtension->{$option_name} = wp_json_encode( $option_value );
|
|
MainWP_DB_Common::instance()->update_user_extension( $userExtension );
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_site_options()
|
|
*
|
|
* Hook to get Child site options.
|
|
*
|
|
* @param mixed $boolean Boolean check.
|
|
* @param object $website Child site object.
|
|
* @param string|array $options Option table name.
|
|
*
|
|
* @return string|null Database query result (as string), or null on failure
|
|
*/
|
|
public function hook_get_site_options( $boolean, $website, $options = '' ) {
|
|
|
|
if ( empty( $options ) ) {
|
|
return $boolean;
|
|
}
|
|
|
|
if ( is_string( $options ) ) {
|
|
return MainWP_DB::instance()->get_website_option( $website, $options );
|
|
} elseif ( is_array( $options ) ) {
|
|
return MainWP_DB::instance()->get_website_options_array( $website, $options );
|
|
}
|
|
return $boolean;
|
|
}
|
|
|
|
/**
|
|
* Method hook_update_site_options()
|
|
*
|
|
* Hook to get Child site options.
|
|
*
|
|
* @param mixed $boolean Boolean check.
|
|
* @param object $website Child site object.
|
|
* @param string $option Option name.
|
|
* @param string $value Option value.
|
|
*
|
|
* @return string|null Database query result (as string), or null on failure
|
|
*/
|
|
public function hook_update_site_options( $boolean, $website, $option, $value ) {
|
|
unset( $boolean );
|
|
|
|
if ( is_numeric( $website ) ) {
|
|
$obj = new \stdClass();
|
|
$obj->id = intval( $website );
|
|
$website = $obj;
|
|
} elseif ( ! is_object( $website ) || ! property_exists( $website, 'id' ) ) {
|
|
return false;
|
|
}
|
|
return MainWP_DB::instance()->update_website_option( $website, $option, $value );
|
|
}
|
|
|
|
|
|
/**
|
|
* Method hook_delete_site_options()
|
|
*
|
|
* Hook to remove Child site options.
|
|
*
|
|
* @since 5.4
|
|
* @param object $website Child site object.
|
|
* @param string $options Option name.
|
|
*
|
|
* @return string|null Database query result (as string), or null on failure
|
|
*/
|
|
public function hook_delete_site_options( $website, $options ) {
|
|
if ( is_numeric( $website ) ) {
|
|
$obj = new \stdClass();
|
|
$obj->id = intval( $website );
|
|
$website = $obj;
|
|
} elseif ( ! is_object( $website ) || ! property_exists( $website, 'id' ) ) {
|
|
return false;
|
|
}
|
|
|
|
return MainWP_DB::instance()->remove_website_option( $website, $options );
|
|
}
|
|
|
|
|
|
/**
|
|
* Get sites by user ID.
|
|
*
|
|
* @param mixed $boolean Boolean check.
|
|
* @param int $userid User ID.
|
|
* @param bool $selectgroups Selected groups.
|
|
* @param null $search_site Site search field value.
|
|
* @param string $orderBy Order list by. Default: URL.
|
|
*
|
|
* @return object|null Database query results or null on failure.
|
|
*/
|
|
public function hook_get_websites_by_user_id( $boolean, $userid, $selectgroups = false, $search_site = null, $orderBy = 'wp.url' ) {
|
|
unset( $boolean );
|
|
return MainWP_DB::instance()->get_websites_by_user_id( $userid, $selectgroups, $search_site, $orderBy );
|
|
}
|
|
|
|
/**
|
|
* Get sites by website ID.
|
|
*
|
|
* @param mixed $boolean Boolean check.
|
|
* @param int $website_id User ID.
|
|
* @param bool $selectGroups Select groups.
|
|
* @param array $extra_view get extra option fields.
|
|
*
|
|
* @return object|null Database query results or null on failure.
|
|
*/
|
|
public function hook_get_website_by_id( $boolean, $website_id, $selectGroups = false, $extra_view = array() ) {
|
|
unset( $boolean );
|
|
if ( empty( $website_id ) ) {
|
|
return false;
|
|
}
|
|
|
|
$website = MainWP_DB::instance()->get_website_by_id( $website_id, $selectGroups, $extra_view );
|
|
|
|
if ( ! empty( $website ) && property_exists( $website, 'privkey' ) ) {
|
|
unset( $website->privkey );
|
|
}
|
|
|
|
return $website;
|
|
}
|
|
|
|
|
|
/**
|
|
* Method get_websites_by_url()
|
|
*
|
|
* Hook to get Child Site by URL.
|
|
*
|
|
* @param string $url Child Site URL.
|
|
*
|
|
* @return array|object|null Database query results.
|
|
*/
|
|
public function get_websites_by_url( $url ) {
|
|
return MainWP_DB::instance()->get_websites_by_url( $url );
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_all_posts()
|
|
* Hook to get posts from sites.
|
|
*
|
|
* @param object $sites Child Sites object.
|
|
* @param array $post_data with values: keyword, dtsstart, dtsstop, status, maxRecords, post_type.
|
|
*
|
|
* @return \stdClass $output All posts data array.
|
|
*
|
|
* @since 3.4.4
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Post::get_class_name()
|
|
* @uses \MainWP\Dashboard\MainWP_Utility::ctype_digit()
|
|
* @uses \MainWP\Dashboard\MainWP_Utility::map_site()
|
|
*/
|
|
public function hook_get_all_posts( $sites, $post_data = array() ) {
|
|
|
|
$dbwebsites = array();
|
|
|
|
$data = MainWP_System_Utility::get_default_map_site_fields();
|
|
$data[] = 'verify_certificate';
|
|
|
|
if ( '' !== $sites ) {
|
|
foreach ( $sites as $v ) {
|
|
if ( MainWP_Utility::ctype_digit( $v ) ) {
|
|
$website = MainWP_DB::instance()->get_website_by_id( $v );
|
|
if ( empty( $website->sync_errors ) && ! MainWP_System_Utility::is_suspended_site( $website ) ) {
|
|
$dbwebsites[ $website->id ] = MainWP_Utility::map_site( $website, $data );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$default_data = array(
|
|
'post_type' => 'post',
|
|
'status' => 'publish',
|
|
'maxRecords' => 10,
|
|
);
|
|
|
|
$post_data = array_merge( $default_data, $post_data );
|
|
|
|
$output = new \stdClass();
|
|
$output->results = array();
|
|
if ( $dbwebsites ) {
|
|
MainWP_Connect::fetch_urls_authed(
|
|
$dbwebsites,
|
|
'get_all_posts',
|
|
$post_data,
|
|
array(
|
|
MainWP_Post::get_class_name(),
|
|
'hook_posts_search_handler',
|
|
),
|
|
$output
|
|
);
|
|
}
|
|
return $output;
|
|
}
|
|
|
|
/**
|
|
* Method \mainwp_current_user_can()
|
|
*
|
|
* Check permission level by hook mainwp_currentusercan of Team Control extension
|
|
*
|
|
* @param mixed $input Return value holder.
|
|
* @param string $can_type group or type of capabilities.
|
|
* @param string $which Which function to perform.
|
|
*
|
|
* @return bool $input Return true if the user can and false if they can not.
|
|
*/
|
|
public function hook_current_user_can( $input, $can_type, $which ) {
|
|
|
|
if ( function_exists( '\mainwp_current_user_can' ) ) {
|
|
return \mainwp_current_user_can( $can_type, $which );
|
|
}
|
|
|
|
return $input;
|
|
}
|
|
|
|
/**
|
|
* Method hook_escape_response()
|
|
*
|
|
* To escape response data.
|
|
*
|
|
* @param mixed $response response data.
|
|
* @param bool $fields fields of response data - option.
|
|
* @param array $more_allowed input allowed tags - option.
|
|
*
|
|
* @return mixed $response valid response data.
|
|
* @throws \MainWP_Exception Exception message.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Utility::esc_content()
|
|
* @uses \MainWP\Dashboard\MainWP_Utility::esc_mixed_content()
|
|
*/
|
|
public function hook_escape_response( $response, $fields = false, $more_allowed = array() ) {
|
|
|
|
if ( false === $fields || is_string( $response ) ) {
|
|
return MainWP_Utility::esc_content( $response );
|
|
}
|
|
|
|
if ( ! is_array( $fields ) ) {
|
|
return $response;
|
|
}
|
|
|
|
if ( ! in_array( 'error', $fields ) ) {
|
|
$fields[] = 'error'; // to sure to valid 'error' field, if that existed.
|
|
}
|
|
|
|
if ( ! in_array( 'message', $fields ) ) {
|
|
$fields[] = 'message'; // to sure to valid 'message' field, if that existed.
|
|
}
|
|
|
|
$depth = 10;
|
|
|
|
foreach ( $fields as $field ) {
|
|
if ( isset( $response[ $field ] ) ) {
|
|
$response[ $field ] = MainWP_Utility::esc_mixed_content( $response[ $field ], $depth, $more_allowed );
|
|
}
|
|
}
|
|
return $response;
|
|
}
|
|
|
|
/**
|
|
* Method hook_escape_content()
|
|
*
|
|
* To escape content.
|
|
*
|
|
* @param mixed $content response data.
|
|
* @param string $type content type for escape.
|
|
* @param array $more_allowed input allowed tags - option.
|
|
*
|
|
* @return mixed $response valid response data.
|
|
* @throws \MainWP_Exception Exception message.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Utility::esc_content()
|
|
*/
|
|
public function hook_escape_content( $content, $type = 'note', $more_allowed = array() ) {
|
|
return MainWP_Utility::esc_content( $content, $type, $more_allowed );
|
|
}
|
|
|
|
|
|
/**
|
|
* Method db_free_result()
|
|
*
|
|
* To escape response data.
|
|
*
|
|
* @param mixed $input_value input value.
|
|
* @param mixed $result result data.
|
|
*
|
|
* @return bool true.
|
|
*/
|
|
public function db_free_result( $input_value, $result ) {
|
|
unset( $input_value );
|
|
MainWP_DB::free_result( $result );
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Method db_num_rows()
|
|
*
|
|
* To escape response data.
|
|
*
|
|
* @param mixed $input_value input value.
|
|
* @param mixed $result result data.
|
|
*
|
|
* @return bool true.
|
|
*/
|
|
public function db_num_rows( $input_value, $result ) {
|
|
unset( $input_value );
|
|
return MainWP_DB::num_rows( $result );
|
|
}
|
|
|
|
|
|
/**
|
|
* Method db_get_websites_for_current_user()
|
|
*
|
|
* @param mixed $input_value input value.
|
|
* @param array $params params data.
|
|
*
|
|
* @return mixed websites.
|
|
*/
|
|
public function db_get_websites_for_current_user( $input_value = false, $params = array() ) {
|
|
unset( $input_value );
|
|
if ( ! is_array( $params ) ) {
|
|
$params = array();
|
|
}
|
|
|
|
$orderBy = isset( $params['orderby'] ) ? MainWP_DB::instance()->escape( $params['orderby'] ) : 'wp.url';
|
|
$extra_view = isset( $params['extra_view'] ) ? $params['extra_view'] : array( 'favi_icon' );
|
|
|
|
if ( ! is_array( $extra_view ) ) {
|
|
$extra_view = array( 'favi_icon' );
|
|
}
|
|
return MainWP_DB::instance()->query( MainWP_DB::instance()->get_sql_websites_for_current_user( false, null, $orderBy, false, false, null, false, $extra_view ) );
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_sql_websites_by_params()
|
|
*
|
|
* @param mixed $in_val input value.
|
|
* @param array $params params data.
|
|
*
|
|
* @return mixed websites.
|
|
*/
|
|
public function hook_get_sql_websites_by_params( $in_val = false, $params = array() ) {
|
|
unset( $in_val );
|
|
if ( ! is_array( $params ) ) {
|
|
$params = array();
|
|
}
|
|
return MainWP_DB::instance()->get_sql_websites_for_current_user_by_params( $params );
|
|
}
|
|
|
|
|
|
/**
|
|
* Method hook_sync_website()
|
|
*
|
|
* To escape response data.
|
|
*
|
|
* @param mixed $input_value input value.
|
|
* @param int $website_id Website ID.
|
|
* @param bool $fire_end_session to run the ending session or not.
|
|
*
|
|
* @return mixed websites.
|
|
*/
|
|
public function hook_sync_website( $input_value, $website_id, $fire_end_session = true ) {
|
|
if ( empty( $website_id ) ) {
|
|
return $input_value;
|
|
}
|
|
$website = MainWP_DB::instance()->get_website_by_id( $website_id );
|
|
if ( empty( $website ) ) {
|
|
return $input_value;
|
|
}
|
|
return MainWP_Sync::sync_website( $website, $fire_end_session );
|
|
}
|
|
|
|
|
|
/**
|
|
* Method hook_db_data_seek()
|
|
*
|
|
* To escape response data.
|
|
*
|
|
* @param mixed $result result data.
|
|
* @param int $offset offset of data.
|
|
*/
|
|
public function hook_db_data_seek( $result, $offset = 0 ) {
|
|
MainWP_DB::data_seek( $result, $offset );
|
|
}
|
|
|
|
|
|
/**
|
|
* Method hook_db_query()
|
|
*
|
|
* To query db.
|
|
*
|
|
* @param mixed $input_value filter input value.
|
|
* @param string $sql result data.
|
|
*
|
|
* @return bool true.
|
|
*/
|
|
public function hook_db_query( $input_value, $sql ) {
|
|
unset( $input_value );
|
|
return MainWP_DB::instance()->query( $sql );
|
|
}
|
|
|
|
/**
|
|
* Method db_fetch_object()
|
|
*
|
|
* To escape response data.
|
|
*
|
|
* @param mixed $input_value input value.
|
|
* @param mixed $result result data.
|
|
*
|
|
* @return bool true.
|
|
*/
|
|
public function db_fetch_object( $input_value, $result ) {
|
|
unset( $input_value );
|
|
return MainWP_DB::fetch_object( $result );
|
|
}
|
|
|
|
|
|
/**
|
|
* Method db_fetch_array()
|
|
*
|
|
* To escape response data.
|
|
*
|
|
* @param mixed $input_value input value.
|
|
* @param mixed $result result data.
|
|
*
|
|
* @return bool true.
|
|
*/
|
|
public function db_fetch_array( $input_value, $result ) {
|
|
unset( $input_value );
|
|
return MainWP_DB::fetch_array( $result );
|
|
}
|
|
|
|
|
|
/**
|
|
* Get notification email settings.
|
|
*
|
|
* @param string $settings hook settings input value.
|
|
* @param string $type Notification type.
|
|
*
|
|
* @return array $gen_email_settings email settings.
|
|
*/
|
|
public function get_notification_settings( $settings, $type ) {
|
|
unset( $settings );
|
|
return MainWP_Notification_Settings::get_general_email_settings( $type );
|
|
}
|
|
|
|
/**
|
|
* Hook send_wp_mail().
|
|
*
|
|
* Send email via wp_mail().
|
|
*
|
|
* @param string $input hook input value.
|
|
* @param string $email send to email.
|
|
* @param string $subject email content.
|
|
* @param bool $formated_content email content.
|
|
* @param string $content_type Text format.
|
|
*/
|
|
public function hook_send_wp_mail( $input, $email, $subject, $formated_content, $content_type = '' ) {
|
|
unset( $input );
|
|
return MainWP_Notification::send_wp_mail(
|
|
$email,
|
|
$subject,
|
|
$formated_content,
|
|
$content_type
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Hook get template HTML content.
|
|
*
|
|
* @param string $input hooks input value.
|
|
* @param string $template_name Template name.
|
|
* @param array $args Arguments. (default: array).
|
|
*
|
|
* @return string
|
|
*/
|
|
public function hook_get_template_html( $input, $template_name, $args = array() ) {
|
|
unset( $input );
|
|
return MainWP_Notification_Template::instance()->get_template_html(
|
|
$template_name,
|
|
$args
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Method hook_secure_request()
|
|
*
|
|
* Security check to request parameter
|
|
*
|
|
* @param string $action Action to perform.
|
|
* @param string $query_arg Query argument.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Post_Handler::secure_request()
|
|
*/
|
|
public function hook_secure_request( $action = '', $query_arg = 'security' ) {
|
|
MainWP_Post_Handler::instance()->secure_request( $action, $query_arg );
|
|
}
|
|
|
|
/**
|
|
* Method hook_check_security_request()
|
|
*
|
|
* Security check to request parameter
|
|
*
|
|
* @param bool $input_value Input value.
|
|
* @param string $action Action to perform.
|
|
* @param string $query_arg Query argument.
|
|
*/
|
|
public function hook_check_security_request( $input_value, $action = '', $query_arg = '' ) {
|
|
unset( $input_value );
|
|
if ( empty( $query_arg ) ) {
|
|
//phpcs:ignore Squiz.PHP.CommentedOutCode.Found
|
|
// to do, $query_arg = 'security'.
|
|
$query_arg = $action; // to check wp_verify_nonce - sanitize_key( $_REQUEST[ $query_arg ] ) - $action.
|
|
}
|
|
return MainWP_Post_Handler::instance()->check_security( $action, $query_arg, false );
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_mainwp_dir()
|
|
*
|
|
* Hook to get MainWP Directory.
|
|
*
|
|
* @param bool $input_value False.
|
|
* @param null $dir WP files system diectories.
|
|
* @param bool $direct_access Return true if Direct access file system. Default: false.
|
|
*
|
|
* @return array $newdir, $url.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_System_Utility::get_mainwp_dir()
|
|
*/
|
|
public function hook_get_mainwp_dir( $input_value = false, $dir = null, $direct_access = false ) {
|
|
unset( $input_value );
|
|
return MainWP_System_Utility::get_mainwp_dir( $dir, $direct_access );
|
|
}
|
|
|
|
|
|
/**
|
|
* Method is_multi_user()
|
|
*
|
|
* Hook to check if multi user.
|
|
*
|
|
* @return bool true|false.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_System::is_multi_user()
|
|
*/
|
|
public function is_multi_user() {
|
|
return MainWP_System::instance()->is_multi_user();
|
|
}
|
|
|
|
/**
|
|
* Method filter_qq2_file_uploader()
|
|
*
|
|
* Hook to create new MainWP_QQ2_File_Uploader() class.
|
|
*
|
|
* @param mixed $allowedExtensions Allowed files extentions.
|
|
* @param mixed $sizeLimit Maximum file size allowed to be uploaded.
|
|
*
|
|
* @return MainWP_QQ2_File_Uploader Return instance of MainWP_QQ2_File_Uploader
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_QQ2_File_Uploader
|
|
*/
|
|
public function filter_qq2_file_uploader( $allowedExtensions, $sizeLimit ) {
|
|
return new MainWP_QQ2_File_Uploader( $allowedExtensions, $sizeLimit );
|
|
}
|
|
|
|
/**
|
|
* Method get_metaboxes_post()
|
|
*
|
|
* Hook to get meta boxes.
|
|
*
|
|
* @return string|bool Return error or true.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_System::$metaboxes
|
|
*/
|
|
public function get_metaboxes_post() {
|
|
return MainWP_System::instance()->metaboxes;
|
|
}
|
|
|
|
/**
|
|
* Method hook_notification_email()
|
|
*
|
|
* Hook to get notification email.
|
|
*
|
|
* @return string Return email.
|
|
*/
|
|
public function hook_notification_email() {
|
|
return MainWP_Notification_Settings::get_general_email();
|
|
}
|
|
|
|
/**
|
|
* Method get_formated_email()
|
|
*
|
|
* Hook to format email.
|
|
*
|
|
* @param mixed $body Email body.
|
|
* @param mixed $email Email address.
|
|
* @param string $title Email title.
|
|
*
|
|
* @return string|bool Return error or true.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Format::format_email()
|
|
*/
|
|
public function get_formated_email( $body, $email, $title = '' ) {
|
|
return MainWP_Format::format_email( $email, $body, $title );
|
|
}
|
|
|
|
/**
|
|
* Method active_plugin()
|
|
*
|
|
* Hook to activate plugins.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Plugins_Handler::activate_plugins()
|
|
*/
|
|
public function active_plugin() {
|
|
MainWP_Plugins_Handler::activate_plugins();
|
|
die();
|
|
}
|
|
|
|
/**
|
|
* Method deactive_plugin()
|
|
*
|
|
* Hook to deactivate plugins.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Plugins_Handler::deactivate_plugins()
|
|
*/
|
|
public function deactive_plugin() {
|
|
MainWP_Plugins_Handler::deactivate_plugins();
|
|
die();
|
|
}
|
|
|
|
/**
|
|
* Method delete_plugin()
|
|
*
|
|
* Hook to delete plugins.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Plugins_Handler::delete_plugins()
|
|
*/
|
|
public function delete_plugin() {
|
|
MainWP_Plugins_Handler::delete_plugins();
|
|
die();
|
|
}
|
|
|
|
/**
|
|
* Method delete_theme()
|
|
*
|
|
* Hook to delete theme()
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Themes_Handler::delete_themes()
|
|
*/
|
|
public function delete_theme() {
|
|
MainWP_Themes_Handler::delete_themes();
|
|
die();
|
|
}
|
|
|
|
/**
|
|
* Method upgrade_wp()
|
|
*
|
|
* Hook to upgrade WP.
|
|
*/
|
|
public function upgrade_wp() {
|
|
|
|
if ( ! \mainwp_current_user_can( 'dashboard', 'update_wordpress' ) ) {
|
|
die( wp_json_encode( array( 'error' => \mainwp_do_not_have_permissions( esc_html__( 'update WordPress', 'mainwp' ), false ) ) ) );
|
|
}
|
|
|
|
try {
|
|
$id = isset( $_POST['id'] ) ? intval( $_POST['id'] ) : false; // phpcs:ignore WordPress.Security.NonceVerification,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
|
|
die( wp_json_encode( array( 'result' => MainWP_Updates_Handler::upgrade_site( $id ) ) ) ); // ok.
|
|
} catch ( MainWP_Exception $e ) {
|
|
die(
|
|
wp_json_encode(
|
|
array(
|
|
'error' => array(
|
|
'message' => $e->getMessage(),
|
|
'extra' => $e->get_message_extra(),
|
|
),
|
|
)
|
|
)
|
|
);
|
|
}
|
|
|
|
die();
|
|
}
|
|
|
|
/**
|
|
* Method upgrade_plugin_theme()
|
|
*
|
|
* Hook to update theme.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Error_Helper::get_error_message()
|
|
* @uses \MainWP\Dashboard\MainWP_System_Utility::can_edit_website()
|
|
* @uses \MainWP\Dashboard\MainWP_Utility::ctype_digit()
|
|
*/
|
|
public function upgrade_plugin_theme() { // phpcs:ignore -- NOSONAR - complex.
|
|
try {
|
|
// phpcs:disable WordPress.Security.NonceVerification,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
|
|
$websiteId = isset( $_POST['websiteId'] ) ? intval( $_POST['websiteId'] ) : null;
|
|
$type = isset( $_POST['type'] ) ? sanitize_text_field( wp_unslash( $_POST['type'] ) ) : null;
|
|
$slugs = isset( $_POST['slugs'] ) && is_array( $_POST['slugs'] ) ? wp_unslash( $_POST['slugs'] ) : array();
|
|
$error = '';
|
|
$erCode = '';
|
|
// phpcs:enable
|
|
|
|
if ( 'plugin' === $type && ! \mainwp_current_user_can( 'dashboard', 'update_plugins' ) ) {
|
|
$error = \mainwp_do_not_have_permissions( esc_html__( 'update plugins', 'mainwp' ), false );
|
|
} elseif ( 'theme' === $type && ! \mainwp_current_user_can( 'dashboard', 'update_themes' ) ) {
|
|
$error = \mainwp_do_not_have_permissions( esc_html__( 'update themes', 'mainwp' ), false );
|
|
}
|
|
|
|
$website = MainWP_DB::instance()->get_website_by_id( $websiteId );
|
|
|
|
if ( MainWP_System_Utility::is_suspended_site( $website ) ) {
|
|
$error = esc_html__( 'Suspended site.', 'mainwp' );
|
|
$erCode = 'SUSPENDED_SITE';
|
|
}
|
|
|
|
if ( ! empty( $error ) ) {
|
|
wp_send_json(
|
|
array(
|
|
'error' => $error,
|
|
'errorCode' => $erCode,
|
|
)
|
|
);
|
|
}
|
|
|
|
if ( MainWP_Utility::ctype_digit( $websiteId ) && MainWP_System_Utility::can_edit_website( $website ) ) {
|
|
/**
|
|
* Action: mainwp_before_plugin_theme_translation_update
|
|
*
|
|
* Fires before plugin/theme/translation update actions.
|
|
*
|
|
* @since 4.1
|
|
*/
|
|
do_action( 'mainwp_before_plugin_theme_translation_update', $type, implode( ',', $slugs ), $website );
|
|
|
|
$information = MainWP_Connect::fetch_url_authed(
|
|
$website,
|
|
'upgradeplugintheme',
|
|
array(
|
|
'type' => $type,
|
|
'list' => urldecode( implode( ',', $slugs ) ),
|
|
)
|
|
);
|
|
|
|
/**
|
|
* Action: mainwp_after_plugin_theme_translation_update
|
|
*
|
|
* Fires before plugin/theme/translation update actions.
|
|
*
|
|
* @since 4.1
|
|
*/
|
|
do_action( 'mainwp_after_plugin_theme_translation_update', $information, $type, implode( ',', $slugs ), $website );
|
|
|
|
if ( isset( $information['sync'] ) ) {
|
|
unset( $information['sync'] );
|
|
}
|
|
wp_send_json( $information );
|
|
}
|
|
} catch ( MainWP_Exception $e ) {
|
|
die( wp_json_encode( array( 'error' => MainWP_Error_Helper::get_error_message( $e ) ) ) );
|
|
}
|
|
|
|
die();
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_websites_by_group_ids()
|
|
*
|
|
* Hook to get Child Sites by group ID.
|
|
*
|
|
* @param mixed $ids Group IDs.
|
|
* @param null $userId Current user ID.
|
|
*
|
|
* @return (object|null) Database query result for get Child Sites by group ID or null on failure.
|
|
*/
|
|
public function hook_get_websites_by_group_ids( $ids, $userId = null ) {
|
|
return MainWP_DB::instance()->get_websites_by_group_ids( $ids, $userId );
|
|
}
|
|
|
|
/**
|
|
* Method hook_posts_get_edit()
|
|
*
|
|
* Get and create post to edit.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Post_Page_Handler::get_post()
|
|
*/
|
|
public function hook_posts_get_edit() {
|
|
MainWP_Post_Page_Handler::get_post();
|
|
die();
|
|
}
|
|
|
|
/**
|
|
* Method hook_posts_bulk_posting()
|
|
*
|
|
* Post Bulk posting.
|
|
*
|
|
* @uses \MainWP\Dashboard\MainWP_Post_Page_Handler::get_post()
|
|
*/
|
|
public function hook_posts_bulk_posting() {
|
|
// phpcs:disable WordPress.Security.NonceVerification,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
|
|
$post_id = isset( $_POST['post_id'] ) && ! empty( $_POST['post_id'] ) ? intval( wp_unslash( $_POST['post_id'] ) ) : false;
|
|
if ( $post_id ) {
|
|
MainWP_Post_Page_Handler::posting_posts( $post_id, 'ajax_posting' );
|
|
}
|
|
// phpcs:enable
|
|
die();
|
|
}
|
|
|
|
/**
|
|
* Method hook_atarim_default_sitestable_column()
|
|
*
|
|
* @param mixed $columns columns data.
|
|
*
|
|
* Hook Atarim default column.
|
|
*/
|
|
public function hook_atarim_default_sitestable_column( $columns ) {
|
|
if ( ! is_plugin_active( 'mainwp-atarim-extension/mainwp-atarim-extension.php' ) ) {
|
|
$columns['atarim_tasks'] = esc_html__( 'Atarim', 'mainwp-atarim-extension' );
|
|
}
|
|
return $columns;
|
|
}
|
|
|
|
/**
|
|
* Method hook_atarim_manage_sites_default_item()
|
|
*
|
|
* @param mixed $item item row data.
|
|
*
|
|
* Hook Atarim manage sites default item.
|
|
*/
|
|
public function hook_atarim_manage_sites_default_item( $item ) {
|
|
if ( ! is_plugin_active( 'mainwp-atarim-extension/mainwp-atarim-extension.php' ) && is_array( $item ) && isset( $item['url'] ) ) {
|
|
$collaborate_link = 'https://app.atarim.io/fetching/?_from=mainwp&url=' . $item['url'];
|
|
$icon_link = MAINWP_PLUGIN_URL . 'assets/images/atarim-icon.png';
|
|
$item['atarim_tasks'] = '<a href="' . $collaborate_link . '" target="_balnk" class="ui mini grey basic button" data-tooltip="Collaborate on this website." data-inverted="" data-position="left center"><img src="' . $icon_link . '" style="width:12px"> ' . __( 'Collaborate', 'mainwp' ) . '</a>';
|
|
}
|
|
return $item;
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_website_client_tokens()
|
|
*
|
|
* Hook get client tokens.
|
|
*
|
|
* @param mixed $input_value input filter value.
|
|
* @param int $websiteid Website ID.
|
|
*
|
|
* @return mixed $result Result of tokens.
|
|
*/
|
|
public function hook_get_website_client_tokens( $input_value, $websiteid = false ) {
|
|
$client_tokens = MainWP_Client_Handler::instance()->get_website_client_tokens_data( $websiteid );
|
|
|
|
if ( false === $client_tokens ) {
|
|
return $input_value;
|
|
}
|
|
|
|
return $client_tokens;
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_download_sig()
|
|
*
|
|
* Hook get download sig.
|
|
*
|
|
* @param string $input_value Input value.
|
|
* @param string $fullfile Full file path.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function hook_get_download_sig( $input_value, $fullfile ) {
|
|
unset( $input_value );
|
|
return MainWP_System_Utility::get_download_sig( $fullfile );
|
|
}
|
|
|
|
/**
|
|
* Method hook_download_valid_sig().
|
|
*
|
|
* Hook get download sig.
|
|
*
|
|
* @param string $false_value false value.
|
|
* @param string $fullfile Full file path.
|
|
* @param string $sig sig value.
|
|
*/
|
|
public function hook_secure_download( $false_value, $fullfile, $sig ) {
|
|
unset( $false_value );
|
|
return MainWP_System_Utility::valid_download_sig( $fullfile, $sig );
|
|
}
|
|
|
|
/**
|
|
* Method hook_ajax_add_action().
|
|
*
|
|
* Hook add ajax action.
|
|
*
|
|
* @param string $action action name.
|
|
* @param string $callback callback function.
|
|
* @param int $priority priority action.
|
|
* @param int $accepted number args.
|
|
*/
|
|
public function hook_ajax_add_action( $action, $callback, $priority = 10, $accepted = 2 ) {
|
|
MainWP_Post_Handler::instance()->add_action( $action, $callback, $priority, $accepted );
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_plugin_icon().
|
|
*
|
|
* Hook get plugin icon.
|
|
*
|
|
* @param mixed $icon input icon.
|
|
* @param string $slug Plugin slug.
|
|
*/
|
|
public function hook_get_plugin_icon( $icon, $slug ) {
|
|
unset( $icon );
|
|
return MainWP_System_Utility::get_plugin_icon( $slug );
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_theme_icon().
|
|
*
|
|
* Hook get theme icon.
|
|
*
|
|
* @param mixed $icon input icon.
|
|
* @param string $slug Theme slug.
|
|
*/
|
|
public function hook_get_theme_icon( $icon, $slug ) {
|
|
unset( $icon );
|
|
return MainWP_System_Utility::get_theme_icon( $slug );
|
|
}
|
|
/**
|
|
* Method hook_get_dir_slug().
|
|
*
|
|
* Hook get dir slug of plugin/theme.
|
|
*
|
|
* @param mixed $input input value.
|
|
* @param string $slug Plugin/Theme slug.
|
|
*/
|
|
public function hook_get_dir_slug( $input, $slug ) {
|
|
unset( $input );
|
|
return MainWP_Utility::get_dir_slug( $slug );
|
|
}
|
|
|
|
/**
|
|
* Method hook_do_widget_boxes()
|
|
*
|
|
* Customize WordPress do_meta_boxes() function.
|
|
*
|
|
* @param mixed $screen_id Current page ID.
|
|
* @param string|null $context right|null. If 3 columns then = 'middle'.
|
|
* @param string $input_obj Empty string.
|
|
*
|
|
* @return void Renders widget container box.
|
|
*/
|
|
public function hook_do_widget_boxes( $screen_id, $context = null, $input_obj = '' ) {
|
|
MainWP_UI::do_widget_boxes( $screen_id, $context, $input_obj );
|
|
}
|
|
|
|
|
|
/**
|
|
* Method hook_add_widget_box()
|
|
*
|
|
* Hook add MainWP meta box.
|
|
*
|
|
* @param mixed $id Widget ID parameter.
|
|
* @param mixed $callback Callback function.
|
|
* @param null $screen Current page.
|
|
* @param string|null $layout widget's layout .
|
|
*
|
|
* @return void Sets Global $mainwp_widget_boxes[ $page ][ $context ][ $priority ][ $id ].
|
|
*/
|
|
public function hook_add_widget_box( $id, $callback, $screen = null, $layout = null ) {
|
|
if ( ! is_array( $layout ) ) {
|
|
$layout = array();
|
|
}
|
|
MainWP_UI::add_widget_box( $id, $callback, $screen, $layout );
|
|
}
|
|
|
|
/**
|
|
* Method hook_render_modal_upload_icon()
|
|
*
|
|
* Render modal window for upload plugins & themes icon.
|
|
*/
|
|
public function hook_render_modal_upload_icon() {
|
|
MainWP_UI::render_modal_upload_icon();
|
|
}
|
|
|
|
/**
|
|
* Method hook_render_plugin_details_modal()
|
|
*
|
|
* Render modal window plugin details.
|
|
*/
|
|
public function hook_render_plugin_details_modal() {
|
|
MainWP_Updates::render_plugin_details_modal();
|
|
}
|
|
|
|
/**
|
|
* Method hook_render_updates()
|
|
*
|
|
* Render modal window updates details.
|
|
*/
|
|
public function hook_render_updates() {
|
|
MainWP_Updates::render();
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_wp_client_by()
|
|
*
|
|
* Handle get wp client by.
|
|
*
|
|
* @param string $by by.
|
|
* @param mixed $value by value.
|
|
* @param mixed $obj Format data.
|
|
* @param bool $params Others params.
|
|
*
|
|
* @return mixed $result results.
|
|
*/
|
|
public function hook_get_wp_client_by( $by = 'client_id', $value = null, $obj = OBJECT, $params = array() ) {
|
|
return MainWP_DB_Client::instance()->get_wp_client_by( $by, $value, $obj, $params );
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_activation_info()
|
|
*
|
|
* Get extension activation info.
|
|
*
|
|
* @param bool $boolean Input bool value.
|
|
* @param string $ext_slug extension api slug.
|
|
*/
|
|
public function hook_get_activation_info( $boolean, $ext_slug ) {
|
|
unset( $boolean );
|
|
$data = MainWP_Api_Manager::instance()->get_activation_info( $ext_slug );
|
|
|
|
$info = array();
|
|
|
|
if ( is_array( $data ) && ! empty( $data['api_key'] ) ) {
|
|
$info['api_key'] = $data['api_key'];
|
|
$info['product_id'] = isset( $data['product_id'] ) ? $data['product_id'] : '';
|
|
$info['instance'] = isset( $data['instance_id'] ) ? $data['instance_id'] : '';
|
|
$info['software_version'] = isset( $data['software_version'] ) ? $data['software_version'] : '';
|
|
$info['object'] = MainWP_Api_Manager::instance()->get_domain();
|
|
if ( isset( $data['product_item_id'] ) ) {
|
|
$info['product_item_id'] = $data['product_item_id'];
|
|
}
|
|
} else {
|
|
$info['activated_key'] = 'Deactivated';
|
|
}
|
|
|
|
return $info;
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_api_url()
|
|
*
|
|
* Get MainWP API Url.
|
|
*/
|
|
public function hook_get_api_url() {
|
|
return MainWP_Api_Manager::instance()->get_upgrade_url();
|
|
}
|
|
|
|
/**
|
|
* Method hook_run_dashboard_action().
|
|
*
|
|
* Handle run dashboard action.
|
|
*
|
|
* @param bool $boolean Input bool value.
|
|
* @param string $action The action to run.
|
|
* @param bool $out_die The function die or return.
|
|
*
|
|
* @return mixed $return result.
|
|
*/
|
|
public function hook_run_dashboard_action( $boolean, $action, $out_die = false ) {
|
|
unset( $boolean );
|
|
if ( ! isset( $action ) ) {
|
|
return false;
|
|
}
|
|
|
|
if ( 'master_api_key_check' === $action ) {
|
|
$return = $this->hook_master_api_key_check();
|
|
} else {
|
|
return false;
|
|
}
|
|
|
|
if ( $out_die ) {
|
|
wp_send_json( $return );
|
|
}
|
|
|
|
return $return;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Method hook_master_api_key_check().
|
|
*
|
|
* Handle to valid MainWP API key.
|
|
*
|
|
* @return array $return Data.
|
|
*/
|
|
public function hook_master_api_key_check() {
|
|
$api_key = MainWP_Api_Manager_Key::instance()->get_decrypt_master_api_key();
|
|
$return = array();
|
|
$error = '';
|
|
if ( ! empty( $api_key ) ) {
|
|
$result = array();
|
|
try {
|
|
$test = MainWP_Api_Manager::instance()->verify_mainwp_api( $api_key );
|
|
$result = json_decode( $test, true );
|
|
if ( is_array( $result ) ) {
|
|
if ( isset( $result['success'] ) && $result['success'] ) {
|
|
$return['success'] = true;
|
|
} elseif ( isset( $result['error'] ) ) {
|
|
$error = $result['error'];
|
|
}
|
|
}
|
|
} catch ( \Exception $e ) {
|
|
$error = $e->getMessage();
|
|
}
|
|
} else {
|
|
$error = esc_html__( 'MainWP API key are required.', 'mainwp' );
|
|
}
|
|
|
|
if ( ! empty( $error ) ) {
|
|
$return['error'] = $error;
|
|
}
|
|
|
|
if ( ! isset( $return['success'] ) ) {
|
|
$return['success'] = false;
|
|
}
|
|
|
|
return $return;
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_key_value().
|
|
*
|
|
* Handle get key value.
|
|
*
|
|
* @param bool $input_value Boolean value, it should always be FALSE.
|
|
* @param string $name Key option name.
|
|
* @param mixed $default_value default value.
|
|
*
|
|
* @return array $return Decrypted Key value.
|
|
*/
|
|
public function hook_get_key_value( $input_value, $name, $default_value = false ) {
|
|
unset( $input_value );
|
|
return MainWP_Keys_Manager::instance()->get_keys_value( $name, $default_value );
|
|
}
|
|
|
|
/**
|
|
* Method hook_update_key_value().
|
|
*
|
|
* Handle update key value.
|
|
*
|
|
* @param bool $input_value Boolean value, it should always be FALSE.
|
|
* @param string $name Key option name.
|
|
* @param mixed $value Key value.
|
|
* @param string $prefix prefix of key file name.
|
|
*
|
|
* @return array $return Decrypted Key value.
|
|
*/
|
|
public function hook_update_key_value( $input_value, $name, $value = false, $prefix = 'ext_' ) {
|
|
unset( $input_value );
|
|
return MainWP_Keys_Manager::instance()->update_key_value( $name, $value, $prefix );
|
|
}
|
|
|
|
|
|
/**
|
|
* Method hook_delete_key_value().
|
|
*
|
|
* Handle delete key value.
|
|
*
|
|
* @param string $name Key option name.
|
|
*
|
|
* @return mixed Return Result.
|
|
*/
|
|
public function hook_delete_key_value( $name ) {
|
|
return MainWP_Keys_Manager::instance()->update_key_value( $name, false ); // false: to delete.
|
|
}
|
|
|
|
/**
|
|
* Method hook_encrypt_key_value().
|
|
*
|
|
* Handle get key value.
|
|
*
|
|
* @param bool $input_value Boolean value, it should always be FALSE.
|
|
* @param array $data Encrypted data.
|
|
* @param mixed $prefix prefix value.
|
|
* @param mixed $key_file Key file value.
|
|
*
|
|
* @return array $return Decrypted Key value.
|
|
*/
|
|
public function hook_encrypt_key_value( $input_value, $data, $prefix = 'ext_', $key_file = false ) {
|
|
unset( $input_value );
|
|
return MainWP_Keys_Manager::instance()->encrypt_keys_data( $data, $prefix, $key_file );
|
|
}
|
|
|
|
/**
|
|
* Method hook_decrypt_key_value().
|
|
*
|
|
* Handle get key value.
|
|
*
|
|
* @param bool $input_value Boolean value, it should always be FALSE.
|
|
* @param array $encrypted_data Encrypted data.
|
|
* @param mixed $default_value default value.
|
|
*
|
|
* @return array $return Decrypted Key value.
|
|
*/
|
|
public function hook_decrypt_key_value( $input_value, $encrypted_data, $default_value = false ) {
|
|
unset( $input_value );
|
|
return MainWP_Keys_Manager::instance()->decrypt_keys_data( $encrypted_data, $default_value );
|
|
}
|
|
|
|
|
|
/**
|
|
* Method hook_delete_key_file().
|
|
*
|
|
* Handle delete key value.
|
|
*
|
|
* @param string $key_file Key file name.
|
|
*
|
|
* @return array $return Decrypted Key value.
|
|
*/
|
|
public function hook_delete_key_file( $key_file ) {
|
|
return MainWP_Keys_Manager::instance()->delete_key_file( $key_file );
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_lookup_items().
|
|
*
|
|
* @param bool $false_val false value.
|
|
* @param string $item_name item name.
|
|
* @param int $item_id item id.
|
|
* @param string $obj_name object name.
|
|
*
|
|
* @return array Lookup items.
|
|
*/
|
|
public function hook_get_lookup_items( $false_val, $item_name, $item_id, $obj_name ) {
|
|
unset( $false_val );
|
|
return MainWP_DB::instance()->get_lookup_items( $item_name, $item_id, $obj_name );
|
|
}
|
|
|
|
/**
|
|
* Method hook_insert_lookup_item().
|
|
*
|
|
* @param bool $false_val false value.
|
|
* @param string $item_name item name.
|
|
* @param int $item_id item id.
|
|
* @param string $obj_name object name.
|
|
* @param int $obj_id object id.
|
|
*
|
|
* @return array Lookup items.
|
|
*/
|
|
public function hook_insert_lookup_item( $false_val, $item_name, $item_id, $obj_name, $obj_id ) {
|
|
unset( $false_val );
|
|
return MainWP_DB::instance()->insert_lookup_item( $item_name, $item_id, $obj_name, $obj_id );
|
|
}
|
|
|
|
/**
|
|
* Method hook_delete_lookup_items().
|
|
*
|
|
* @param bool $false_val false value.
|
|
* @param string $by Delete by.
|
|
* @param array $params params.
|
|
*
|
|
* @return mixed results.
|
|
*/
|
|
public function hook_delete_lookup_items( $false_val, $by = 'lookup_id', $params = array() ) {
|
|
unset( $false_val );
|
|
return MainWP_DB::instance()->delete_lookup_items( $by, $params );
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_indicator().
|
|
*
|
|
* @param bool $def_value default input value.
|
|
* @param bool $indi_type Indicator type.
|
|
* @param bool $wrapper_cls field wrapper class.
|
|
* @param bool $visible Current indicator status.
|
|
*
|
|
* @return mixed indicator results.
|
|
*/
|
|
public function hook_get_indicator( $def_value, $indi_type = 'field', $wrapper_cls = '', $visible = true ) {
|
|
unset( $def_value );
|
|
return MainWP_Settings_Indicator::get_indicator( $indi_type, $wrapper_cls, $visible );
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_time_elapsed_string().
|
|
*
|
|
* Returns date in time ago format
|
|
*
|
|
* @param mixed $ptime Date stamp.
|
|
* @return string $string Time elapsed string.
|
|
*/
|
|
public function hook_get_time_elapsed_string( $ptime = 0 ) {
|
|
return MainWP_Utility::time_elapsed_string( $ptime );
|
|
}
|
|
|
|
/**
|
|
* Method hook_get_regular_process_by().
|
|
*
|
|
* @param mixed $input_value Input value.
|
|
* @param int $item_id Item id.
|
|
* @param int $pro_type Process type.
|
|
* @param int $pro_slug Process slug.
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public function hook_get_regular_process_by( $input_value, $item_id, $pro_type, $pro_slug ) {
|
|
unset( $input_value );
|
|
return MainWP_DB::instance()->get_regular_process_by_item_id_type_slug( $item_id, $pro_type, $pro_slug );
|
|
}
|
|
}
|