config = $config; $wd_options = $this->config; $this->deactivate_reasons = array( 1 => array( 'id' => self::REASON_PLUGIN_IS_HARD_TO_USE_TECHNICAL_PROBLEMS, 'text' => __( 'Technical problems / hard to use', $wd_options->prefix ), ), 2 => array( 'id' => self::REASON_FREE_VERSION_IS_LIMITED, 'text' => __( 'Free version is limited', $wd_options->prefix ), ), 3 => array( 'id' => self::REASON_PRO_EXPENSIVE, 'text' => __( 'Premium is expensive', $wd_options->prefix ), ), 4 => array( 'id' => self::REASON_UPGRADING_TO_PAID_VERSION, 'text' => __( 'Upgrading to paid version', $wd_options->prefix ), ), 5 => array( 'id' => self::REASON_TEMPORARY_DEACTIVATION, 'text' => __( 'Temporary deactivation', $wd_options->prefix ), ), ); add_action( 'admin_footer', array( $this, 'add_deactivation_feedback_dialog_box' ) ); add_action( 'admin_init', array( $this, 'submit_and_deactivate' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'scripts' ) ); } //////////////////////////////////////////////////////////////////////////////////////// // Public Methods // //////////////////////////////////////////////////////////////////////////////////////// public function add_deactivation_feedback_dialog_box(){ $deactivate_reasons = $this->deactivate_reasons; $wd_options = $this->config; ?> 'deactivate', 'plugin' => plugin_basename( $wd_options->plugin_main_file ), '_wpnonce' => wp_create_nonce( 'deactivate-plugin_' . plugin_basename( $wd_options->plugin_main_file ) ) ), admin_url( 'plugins.php' ) ); require ( $wd_options->wd_dir_templates . '/display_deactivation_popup.php' ); } public function scripts(){ $wd_options = $this->config; wp_enqueue_style( 'wd-deactivate-popup', $wd_options->wd_url_css . '/deactivate_popup.css', array(), get_option($wd_options->prefix . "_version" ) ); wp_enqueue_script( 'wd-deactivate-popup', $wd_options->wd_url_js . '/deactivate_popup.js', array(), get_option($wd_options->prefix . "_version" )); $admin_data = wp_get_current_user(); wp_localize_script( 'wd-deactivate-popup', $wd_options->prefix . 'WDDeactivateVars' , array( "prefix" => $wd_options->prefix , "deactivate_class" => $wd_options->prefix . '_deactivate_link', "email" => $admin_data->data->user_email, "plugin_wd_url" => $wd_options->plugin_wd_url, )); } public function submit_and_deactivate(){ $wd_options = $this->config; if( isset( $_POST[$wd_options->prefix . "_submit_and_deactivate"] ) ){ if( $_POST[$wd_options->prefix . "_submit_and_deactivate"] == 2 || $_POST[$wd_options->prefix . "_submit_and_deactivate"] == 3 ){ $api = new DoradoWebApi( $wd_options ); $hash = $api->get_hash(); if($hash != null){ $data = array(); $data["reason"] = isset($_POST[$wd_options->prefix . "_reasons"]) ? $_POST[$wd_options->prefix . "_reasons"] : ""; $data["site_url"] = site_url(); $data["plugin_id"] = $wd_options->wd_plugin_id; $data["additional_details"] = isset($_POST[$wd_options->prefix . "_additional_details"]) ? $_POST[$wd_options->prefix . "_additional_details"] : ""; $admin_data = wp_get_current_user(); $data["email"] = isset($_POST[$wd_options->prefix . "_email"]) ? $_POST[$wd_options->prefix . "_email"] : $admin_data->data->user_email; $user_first_name = get_user_meta( $admin_data->ID, "first_name", true ); $user_last_name = get_user_meta( $admin_data->ID, "last_name", true ); $data["name"] = $user_first_name || $user_last_name ? $user_first_name . " " . $user_last_name : $admin_data->data->user_login; $data["hash"] = $hash; $response = wp_remote_post( "https://api.web-dorado.com/deactivatereasons", array( 'method' => 'POST', 'timeout' => 45, 'redirection' => 5, 'httpversion' => '1.0', 'blocking' => true, 'headers' => array(), 'body' => json_encode($data), 'cookies' => array() ) ); $response_body = (!is_wp_error($response) && isset( $response["body"] )) ? json_decode( $response["body"], true ) : null; if( is_array( $response_body ) && $response_body["body"]["msg"] == "Access" ) { } } } if($_POST[$wd_options->prefix . "_submit_and_deactivate"] == 2 || $_POST[$wd_options->prefix . "_submit_and_deactivate"] == 1 ){ $deactivate_url = add_query_arg( array( 'action' => 'deactivate', 'plugin' => plugin_basename( $wd_options->plugin_main_file ), '_wpnonce' => wp_create_nonce( 'deactivate-plugin_' . plugin_basename( $wd_options->plugin_main_file ) ) ), admin_url( 'plugins.php' ) ); echo ''; } } } //////////////////////////////////////////////////////////////////////////////////////// // Getters & Setters // //////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////// // Private Methods // //////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////// // Listeners // //////////////////////////////////////////////////////////////////////////////////////// }