PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.0.22
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.0.22
1.2.73 1.2.72 1.2.71 1.2.70 1.2.69 1.2.68 1.2.67 1.2.66 1.2.65 1.2.64 1.2.63 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 All 173 releases
userswp / includes / class-ajax.php

class-ajax.php in UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP 1.0.22, at includes/class-ajax.php

135 lines 5.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Ajax related functions
4 *
5 * This class defines all code necessary to handle UsersWP ajax requests.
6 *
7 * @since 1.0.0
8 * @author GeoDirectory Team <info@wpgeodirectory.com>
9 */
10 class UsersWP_Ajax {
11
12 private $form_builder;
13
14 public function __construct($form_builder) {
15 $this->form_builder = $form_builder;
16 }
17
18 /**
19 * Handles the create custom field and sort custom field ajax requests.
20 *
21 * @since 1.0.0
22 * @package userswp
23 * @return void
24 */
25 public function handler()
26 {
27 if ((isset($_REQUEST['uwp_ajax']) && $_REQUEST['uwp_ajax'] == 'admin_ajax') || isset($_REQUEST['create_field']) || isset($_REQUEST['sort_create_field'])) {
28 if (current_user_can('manage_options')) {
29 if (isset($_REQUEST['create_field'])) {
30 $this->create_field($_REQUEST);
31 $this->uwp_die();
32 }
33 } else {
34 $login_page = uwp_get_page_id('login_page', false);
35 if ($login_page) {
36 wp_redirect(get_permalink($login_page));
37 } else {
38 wp_redirect(home_url('/'));
39 }
40 $this->uwp_die();
41 }
42 }
43 }
44
45 /**
46 * Kill WordPress execution and display HTML message with error message.
47 *
48 * @since 1.0.0
49 * @package userswp
50 * @param string $message Optional. Error message.
51 * @param string $title Optional. Error title.
52 * @param int $status The HTTP response code. Default 200 for Ajax requests, 500 otherwise.
53 * @return void
54 */
55 public function uwp_die( $message = '', $title = '', $status = 400 ) {
56 add_filter( 'wp_die_ajax_handler', '_uwp_die_handler', 10, 3 );
57 add_filter( 'wp_die_handler', '_uwp_die_handler', 10, 3 );
58 wp_die( $message, $title, array( 'response' => $status ));
59 }
60
61 /**
62 * Handles the create custom field ajax request.
63 *
64 * @since 1.0.0
65 * @package userswp
66 * @param array $data Submitted $_REQUEST data.
67 * @return void
68 */
69 public function create_field($data) {
70
71 $form_type = isset($data['form_type']) ? sanitize_text_field($data['form_type']) : '';
72 $field_type = isset($data['field_type']) ? sanitize_text_field($data['field_type']) : '';
73 $field_type_key = isset($data['field_type_key']) ? sanitize_text_field($data['field_type_key']) : '';
74 $field_action = isset($data['field_ins_upd']) ? sanitize_text_field($data['field_ins_upd']) : '';
75 $field_id = isset($data['field_id']) ? sanitize_text_field($data['field_id']) : '';
76
77 $field_id = $field_id != '' ? trim($field_id, '_') : $field_id;
78
79 $field_ids = array();
80 if (!empty($data['licontainer']) && is_array($data['licontainer'])) {
81 foreach ($data['licontainer'] as $lic_id) {
82 $field_ids[] = sanitize_text_field($lic_id);
83 }
84 }
85
86 /* ------- check nonce field ------- */
87 if (isset($data['update']) && $data['update'] == "update" && isset($data['create_field']) && isset($data['manage_field_type']) && $data['manage_field_type'] == 'custom_fields') {
88 echo $this->form_builder->uwp_set_field_order($field_ids);
89 }
90
91 /* ---- Show field form in admin ---- */
92 if ($field_type != '' && $field_id != '' && $field_action == 'new' && isset($data['create_field']) && isset($data['manage_field_type']) && $data['manage_field_type'] == 'custom_fields') {
93 $this->form_builder->uwp_form_field_adminhtml($field_type, $field_id, $field_action,$field_type_key, $form_type);
94 }
95
96
97 /* ---- Delete field ---- */
98 if ($field_id != '' && $field_action == 'delete' && isset($data['_wpnonce']) && isset($data['create_field']) && isset($data['manage_field_type']) && $data['manage_field_type'] == 'custom_fields') {
99 if (!wp_verify_nonce($data['_wpnonce'], 'custom_fields_' . $field_id))
100 return;
101
102 echo $this->form_builder->uwp_admin_form_field_delete($field_id);
103 }
104
105 /* ---- Save field ---- */
106 if ($field_id != '' && $field_action == 'submit' && isset($data['_wpnonce']) && isset($data['create_field']) && isset($data['manage_field_type']) && $data['manage_field_type'] == 'custom_fields') {
107 if (!wp_verify_nonce($data['_wpnonce'], 'custom_fields_' . $field_id))
108 return;
109
110 foreach ($data as $pkey => $pval) {
111 if (is_array($data[$pkey])) {
112 $tags = 'skip_field';
113 } else {
114 $tags = '';
115 }
116
117 if ($tags != 'skip_field') {
118 $data[$pkey] = strip_tags($data[$pkey], $tags);
119 }
120 }
121
122 $return = $this->form_builder->uwp_admin_form_field_save($data);
123
124 if (is_int($return)) {
125 $lastid = $return;
126 $this->form_builder->uwp_form_field_adminhtml($field_type, $lastid, 'submit',$field_type_key, $form_type);
127 } else {
128 echo $return;
129 }
130 }
131
132 wp_die();
133
134 }
135 }