PUM_Newsletters::ajax_request()
Submits the form using ajax
Description Description
Source Source
File: classes/Newsletters.php
public static function ajax_request() { self::$errors = new WP_Error; $values = isset( $_REQUEST['values'] ) ? $_REQUEST['values'] : array(); if ( empty( $values['popup_id'] ) && ! empty( $values['pum_form_popup_id'] ) ) { $values['popup_id'] = absint( $values['pum_form_popup_id'] ); } // Clean JSON passed values. $values = PUM_Utils_Array::fix_json_boolean_values( $values ); do_action( 'pum_sub_form_ajax_override', $values ); // Allow sanitization & manipulation of form values prior to usage. $values = apply_filters( 'pum_sub_form_sanitization', $values ); // Allow validation of the data. self::$errors = apply_filters( 'pum_sub_form_validation', self::$errors, $values ); if ( self::$errors->get_error_code() ) { self::send_errors( self::$errors ); } $response = array(); // Process the submission and pass the $response array as a reference variable so data can be added.. do_action_ref_array( 'pum_sub_form_submission', array( $values, &$response, &self::$errors ) ); $error_code = self::$errors->get_error_code(); $already_subscribed = 'already_subscribed' === $error_code; $success = empty( $error_code ) || $already_subscribed ? true : false; if ( ! $success && ! $already_subscribed ) { do_action( 'pum_sub_form_errors', $values, self::$errors ); switch ( $error_code ) { case 'api_errors': $response['message'] = pum_get_newsletter_provider_message( $values['provider'], 'error', $values ); break; } self::send_errors( self::$errors, $response ); } else { do_action( 'pum_sub_form_success', $values ); if ( $already_subscribed ) { $response['already_subscribed'] = true; } $response["message"] = pum_get_newsletter_provider_message( $values['provider'], $already_subscribed ? 'already_subscribed' : 'success', $values ); self::send_success( $response ); } // Don't let it keep going. die(); }
Expand full source code Collapse full source code View on Trac