/** * The callback method for the campaigns shortcode. * * This receives the user-defined attributes and passes the logic off to the class. * * @param array $atts User-defined shortcode attributes. * @return string * @access public * @static * @since 1.0.0 */ public static function display($atts = array()) { $defaults = array('logged_in_message' => __('You are already logged in!', 'charitable'), 'redirect' => esc_url(charitable_get_login_redirect_url()), 'registration_link_text' => __('Register', 'charitable')); $args = shortcode_atts($defaults, $atts, 'charitable_login'); $args['login_form_args'] = self::get_login_form_args($args); if (is_user_logged_in()) { ob_start(); charitable_template('shortcodes/logged-in.php', $args); return ob_get_clean(); } if (false == $args['registration_link_text'] || 'false' == $args['registration_link_text']) { $args['registration_link'] = false; } else { $registration_link = charitable_get_permalink('registration_page'); if (charitable_get_permalink('login_page') === $registration_link) { $args['registration_link'] = false; } else { if (isset($_GET['redirect_to'])) { $registration_link = add_query_arg('redirect_to', $_GET['redirect_to'], $registration_link); } $args['registration_link'] = $registration_link; } } ob_start(); charitable_template('shortcodes/login.php', $args); return apply_filters('charitable_login_shortcode', ob_get_clean()); }
/** * The callback method for the campaigns shortcode. * * This receives the user-defined attributes and passes the logic off to the class. * * @param array $atts User-defined shortcode attributes. * @return string * @access public * @static * @since 1.0.0 */ public static function display($atts = array()) { global $wp; $defaults = array('logged_in_message' => __('You are already logged in!', 'charitable'), 'redirect' => esc_url_raw(charitable_get_login_redirect_url())); $args = shortcode_atts($defaults, $atts, 'charitable_login'); $args['login_form_args'] = self::get_login_form_args($args); if (is_user_logged_in()) { ob_start(); charitable_template('shortcodes/logged-in.php', $args); return ob_get_clean(); } ob_start(); charitable_template('shortcodes/login.php', $args); return apply_filters('charitable_login_shortcode', ob_get_clean()); }
/** * Update registration after form submission. * * @return void * @access public * @static * @since 1.0.0 */ public static function save_registration() { $form = new Charitable_Registration_Form(); if (!$form->validate_nonce() || !$form->validate_honeypot()) { charitable_get_notices()->add_error(__('There was an error with processing your form submission. Please reload the page and try again.', 'charitable')); return; } $fields = $form->get_fields(); $valid = $form->check_required_fields($fields); if (!$valid) { return; } $submitted = apply_filters('charitable_registration_values', $_POST, $fields, $form); if (!isset($submitted['user_email']) || !is_email($submitted['user_email'])) { charitable_get_notices()->add_error(sprintf(__('%s is not a valid email address.', 'charitable'), $submitted['user_email'])); return false; } $user = new Charitable_User(); $user_id = $user->update_profile($submitted, array_keys($fields)); /** * If the user was successfully created, redirect to the login redirect URL. * If there was a problem, this simply falls through and keeps the user on the * registration page. */ if ($user_id) { wp_safe_redirect(charitable_get_login_redirect_url()); exit; } }
/** * Update registration after form submission. * * @return void * @access public * @static * @since 1.0.0 */ public static function save_registration() { $form = new Charitable_Registration_Form(); if (!$form->validate_nonce()) { return; } $fields = $form->get_fields(); $valid = $form->check_required_fields($fields); if (!$valid) { return; } $submitted = apply_filters('charitable_registration_values', $_POST, $fields, $form); $user = new Charitable_User(); $user->update_profile($submitted, array_keys($fields)); if (isset($submitted['user_pass'])) { $creds = array(); $creds['user_login'] = isset($submitted['user_login']) ? $submitted['user_login'] : $user->user_login; $creds['user_password'] = $submitted['user_pass']; $creds['remember'] = true; wp_signon($creds, false); } wp_safe_redirect(charitable_get_login_redirect_url()); exit; }
/** * Return donations to display with the shortcode. * * @param array $args * @return mixed[] $args * @access protected * @static * @since 1.0.0 */ protected static function get_login_form_args($args) { return apply_filters('charitable_login_form_args', array('redirect' => esc_url(charitable_get_login_redirect_url())), $args); }
/** * Update registration after form submission. * * @return void * @access public * @static * @since 1.0.0 */ public static function save_registration() { $form = new Charitable_Registration_Form(); if (!$form->validate_nonce()) { return; } $fields = $form->get_fields(); $valid = $form->check_required_fields($fields); if (!$valid) { return; } $submitted = apply_filters('charitable_registration_values', $_POST, $fields, $form); $user = new Charitable_User(); $user_id = $user->update_profile($submitted, array_keys($fields)); /** * If the user was successfully created, redirect to the login redirect URL. * If there was a problem, this simply falls through and keeps the user on the * registration page. */ if ($user_id) { wp_safe_redirect(charitable_get_login_redirect_url()); exit; } }