public static function saveExtensionsApiLogin()
 {
     $username = trim($_POST['username']);
     $password = trim($_POST['password']);
     if ($username == '' && $password == '') {
         MainWP_Utility::update_option('mainwp_extensions_api_username', $username);
         MainWP_Utility::update_option('mainwp_extensions_api_password', $password);
         die(json_encode(array('saved' => 1)));
     }
     $result = array();
     try {
         $test = MainWP_Api_Manager::instance()->test_login_api($username, $password);
     } catch (Exception $e) {
         $return['error'] = $e->getMessage();
         die(json_encode($return));
     }
     if (is_array($test) && isset($test['retry_action'])) {
         die(json_encode($test));
     }
     $result = json_decode($test, true);
     $save_login = isset($_POST['saveLogin']) && $_POST['saveLogin'] == '1' ? true : false;
     $return = array();
     if (is_array($result)) {
         if (isset($result['success']) && $result['success']) {
             if ($save_login) {
                 $enscrypt_u = MainWP_Api_Manager_Password_Management::encrypt_string($username);
                 $enscrypt_p = MainWP_Api_Manager_Password_Management::encrypt_string($password);
                 MainWP_Utility::update_option('mainwp_extensions_api_username', $enscrypt_u);
                 MainWP_Utility::update_option('mainwp_extensions_api_password', $enscrypt_p);
                 MainWP_Utility::update_option('mainwp_extensions_api_save_login', true);
             }
             $return['result'] = 'SUCCESS';
         } else {
             if (isset($result['error'])) {
                 $return['error'] = $result['error'];
             }
         }
     }
     if (!$save_login) {
         MainWP_Utility::update_option('mainwp_extensions_api_username', '');
         MainWP_Utility::update_option('mainwp_extensions_api_password', '');
         MainWP_Utility::update_option('mainwp_extensions_api_save_login', '');
     }
     die(json_encode($return));
 }
 public function mwp_setup_purchase_extension_save()
 {
     check_admin_referer('mwp-setup');
     $username = !empty($_POST['mwp_setup_purchase_username']) ? sanitize_text_field($_POST['mwp_setup_purchase_username']) : '';
     $password = !empty($_POST['mwp_setup_purchase_passwd']) ? sanitize_text_field($_POST['mwp_setup_purchase_passwd']) : '';
     if ($username == '' && $password == '') {
         MainWP_Utility::update_option("mainwp_extensions_api_username", $username);
         MainWP_Utility::update_option("mainwp_extensions_api_password", $password);
     } else {
         $enscrypt_u = MainWP_Api_Manager_Password_Management::encrypt_string($username);
         $enscrypt_p = MainWP_Api_Manager_Password_Management::encrypt_string($password);
         MainWP_Utility::update_option("mainwp_extensions_api_username", $enscrypt_u);
         MainWP_Utility::update_option("mainwp_extensions_api_password", $enscrypt_p);
         MainWP_Utility::update_option("mainwp_extensions_api_save_login", true);
     }
     $product_id = !empty($_POST['mwp_setup_purchase_product_id']) ? sanitize_text_field($_POST['mwp_setup_purchase_product_id']) : '';
     if ($username == '' || $password == '') {
         update_option('mwp_setup_error_purchase_extension', __('Invalid user name or password.', 'mainwp'));
         return;
     }
     if (empty($product_id)) {
         return array('error' => __('Invalid product id', 'mainwp'));
     }
     $data = MainWPApiManager::instance()->purchase_software($username, $password, $product_id);
     $result = json_decode($data, true);
     $undefined_error = false;
     if (is_array($result)) {
         if (isset($result['success']) && $result['success'] == true) {
             if (isset($result['code']) && $result['code'] == 'PURCHASED') {
                 // success: do nothing
             } else {
                 if (isset($result['order_id']) && !empty($result['order_id'])) {
                     // success: do nothing
                 } else {
                     $undefined_error = true;
                 }
             }
         } else {
             if (isset($result['error'])) {
                 update_option('mwp_setup_error_purchase_extension', $result['error']);
                 return;
             } else {
                 $undefined_error = true;
             }
         }
     } else {
         $undefined_error = true;
     }
     if ($undefined_error) {
         update_option('mwp_setup_error_purchase_extension', __('Undefined error.', 'mainwp'));
         return;
     }
     wp_redirect($this->get_next_step_link());
     exit;
 }