= 0) { $this->filters(); $this->actions(); } else { add_action('admin_notices', array(&$this, 'version_notice__error')); } } public function filters() { } public function head() { $forms = get_option("_ajaxy_umajax_forms"); if(!$forms){ $forms = array(); } $classes = array(); foreach($forms as $form){ $classes[] = ".um-".trim($form); } echo ' '; } public function actions() { add_action('wp_ajax_um_submit_form', array(&$this,'submit_form')); add_action('wp_ajax_nopriv_um_submit_form', array(&$this,'submit_form')); add_action('wp_head', array(&$this,'head')); add_action('admin_enqueue_scripts', array(&$this, 'admin_scripts')); add_action('wp_enqueue_scripts', array(&$this, 'scripts')); add_action('um_after_form', array(&$this, 'um_after_form')); if (isset($_POST['ajaxy-umajax-mode'])) { add_action('init', array(&$this, 'setup_screen'), 1); add_action('um_registration_after_auto_login', array(&$this, 'registration_after_auto_login'), 1); add_action('um_on_login_before_redirect', array(&$this, 'um_on_login_before_redirect'), 1); } } public function version_notice__error() { $class = 'notice notice-error'; $message = __('Ajax forms for Ultimate Member requires Ultimate Member version '.AJAXY_UM_FORMS_REQUIRED_VERSION.' or higher.', AJAXY_UM_FORMS_TEXT_DOMAIN); printf('

%2$s

', $class, $message); } public function admin_scripts() { wp_enqueue_style(AJAXY_UM_FORMS_TEXT_DOMAIN."-style", AJAXY_UM_FORMS_PLUGIN_URL. '/admin/css/styles.css'); } public function scripts() { $in_footer = true; wp_enqueue_script(AJAXY_UM_FORMS_TEXT_DOMAIN, AJAXY_UM_FORMS_PLUGIN_URL. '/js/front.js', array( 'jquery' ), "1.0.0", $in_footer); wp_enqueue_style(AJAXY_UM_FORMS_TEXT_DOMAIN."-style", AJAXY_UM_FORMS_PLUGIN_URL. '/css/styles.css'); } public function setup_screen() { if (isset($_POST['ajaxy-umajax-mode'])) { if (!$GLOBALS['current_screen']) { $GLOBALS['current_screen'] = new Ajaxy_UM_Forms_Screen(); } } } public function um_on_login_before_redirect() { global $ultimatemember; $after = um_user('after_login'); switch ($after) { case 'redirect_admin': $this->vars['after_login'] = admin_url(); break; case 'redirect_profile': $this->vars['after_login'] = um_user_profile_url(); break; case 'redirect_url': $this->vars['after_login'] = um_user('login_redirect_url'); break; case 'refresh': $this->vars['after_login'] = $ultimatemember->permalinks->get_current_url(); break; } $ultimatemember->user->profile['after_login'] = ""; } public function registration_after_auto_login() { global $ultimatemember; $this->vars['auto_approve_act']= $ultimatemember->user->profile['auto_approve_act']; if (um_user('auto_approve_act') == 'redirect_url' && um_user('auto_approve_url') !== '') { $this->vars['auto_approve_act'] = um_user('auto_approve_url') ; } if (um_user('auto_approve_act') == 'redirect_profile') { $this->vars['auto_approve_act'] = um_user_profile_url() ; } $ultimatemember->user->profile['auto_approve_act'] = ""; } public function submit_form() { global $ultimatemember; $continue = true; $output = array(); $code = isset($_POST['code-'.$ultimatemember->form->form_id]) ? $_POST['code-'.$ultimatemember->form->form_id] : false; if($code){ $code = get_page_by_title($code, OBJECT, 'code'); if ($code == null) { $output = array("status" => 'failure', "message" => 'Invalid Code'); }else{ if($code->post_author == 1){ //code is not claimed yet // Update post 37 if(get_current_user_id() > 0){ $my_post = array( 'ID' => $code->ID, 'post_type' => 'code', 'post_author' => get_current_user_id(), ); // Update the post into the database wp_update_post( $my_post ); } //$output = array("status" => 'success', "message" => 'Code Added'); }else{ $continue = false; $output = array("status" => 'failure', "message" => 'Code is already claimed'); } } } if($continue): switch ($_POST['ajaxy-umajax-mode']) { case "register": $error = ''; if ($ultimatemember->form->count_errors() > 0) { $error = array_values($ultimatemember->form->errors); $error = array_shift($error); } $errors = trim(apply_filters('register_errors', $error)); if (trim($errors)) { $ajax_nonce = wp_create_nonce("um_register_form"); $output = array("status" => "error", "message" => $errors, "nonce" => $ajax_nonce); } else { $output = array("status" => "success", "message" => apply_filters("um_custom_success_message_handler", '', ''), "redirect" => isset($this->vars['auto_approve_act']) ? $this->vars['auto_approve_act'] : um_user('auto_approve_act')); } break; case "login": $error = ''; if ($ultimatemember->form->count_errors() > 0) { $error = array_values($ultimatemember->form->errors); $error = array_shift($error); } $errors = trim(apply_filters('login_errors', $error)); if (trim($errors)) { $output = array("status" => "error", "message" => $errors); } else { $output = array("status" => "success", "message" => apply_filters("um_login_success_message_handler", '', ''), "redirect" => isset($this->vars['after_login']) ? $this->vars['after_login'] : um_user('after_login')); } break; default: if ($_POST['form_id'] == 'um_password_id' && $_POST['_um_password_reset'] == 1) { $ultimatemember->form->post_form = $_POST; do_action('um_reset_password_errors_hook', $ultimatemember->form->post_form); if (!isset($ultimatemember->form->errors)) { do_action('um_reset_password_process_hook', $ultimatemember->form->post_form); } $error = ''; if ($ultimatemember->form->count_errors() > 0) { $error = array_values($ultimatemember->form->errors); $error = array_shift($error); } $errors = trim(apply_filters('password_errors', $error)); if (trim($errors)) { $output = array("status" => "error", "message" => $errors); } else { $output = array("status" => "success", "message" => apply_filters("um_password_reset_success_message_handler", 'Your password has been reset successfully!An email with instructions has been sent to your registered email address', ''), "redirect" => isset($this->vars['auto_approve_act']) ? $this->vars['auto_approve_act'] : um_user('auto_approve_act')); } } elseif (is_user_logged_in() && $_POST['_um_account'] == 1) { $ultimatemember->form->post_form = $_POST; do_action('um_submit_account_errors_hook', $ultimatemember->form->post_form); $error = ''; if ($ultimatemember->form->count_errors() > 0) { $error = array_values($ultimatemember->form->errors); $error = array_shift($error); } $errors = trim(apply_filters('password_errors', $error)); if (trim($errors)) { $output = array("status" => "error", "message" => $errors); } else { // if there is no errors, just submit, we have no choice Ultimate Member is using redirects $output = array("status" => "submit"); } } else { $output = array("status" => "submit"); } break; } endif; $GLOBALS['current_screen'] = null; echo json_encode($output); die(); } public function um_after_form($args) { if ($args['mode']) { ?>