/** * Form processor. * * @since 141111 First documented version. * * @param array $request_args Incoming action request args. * * @see SubManageActions::subForm() */ public static function process(array $request_args) { $plugin = plugin(); // Needed below. $args = ['process_confirmation' => true, 'user_initiated' => true, 'ui_protected_data_keys_enable' => true, 'ui_protected_data_user' => wp_get_current_user()]; static::$processing = true; // Flag as `TRUE`; along w/ other statics below. if (isset($request_args['key'])) { // Key sanitizer; for added security. $request_args['key'] = $sub_key = $plugin->utils_sub->sanitizeKey($request_args['key']); } if (isset($request_args['ID'])) { // Updating an existing subscription via ID? $sub_updater = new SubUpdater($request_args, $args); // Run updater. if ($sub_updater->hasErrors()) { // Updater has errors? static::$processing_errors = $sub_updater->errors(); static::$processing_error_codes = $sub_updater->errorCodes(); static::$processing_errors_html = $sub_updater->errorsHtml(); } elseif ($sub_updater->didUpdate()) { // Updated? static::$processing_successes = $sub_updater->successes(); static::$processing_success_codes = $sub_updater->successCodes(); static::$processing_successes_html = $sub_updater->successesHtml(); static::$processing_email_key_change = $sub_updater->emailKeyChanged(); } } elseif ($plugin->options['enable'] && $plugin->options['new_subs_enable']) { // This check is for added security only. The form should not be available. $sub_inserter = new SubInserter($request_args, $args); // Run inserter. if ($sub_inserter->hasErrors()) { // Inserter has errors? static::$processing_errors = $sub_inserter->errors(); static::$processing_error_codes = $sub_inserter->errorCodes(); static::$processing_errors_html = $sub_inserter->errorsHtml(); } elseif ($sub_inserter->didInsert()) { // Inserted? static::$processing_successes = $sub_inserter->successes(); static::$processing_success_codes = $sub_inserter->successCodes(); static::$processing_successes_html = $sub_inserter->successesHtml(); } } }