PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 3.1
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v3.1
4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / Admin / SettingsPages / ShortcodeBuilder / EditShortcodeUserProfile / EditShortcodeUserProfile.php
wp-user-avatar / src / Admin / SettingsPages / ShortcodeBuilder / EditShortcodeUserProfile Last commit date
EditShortcodeUserProfile.php 5 years ago edit_screen.php 5 years ago
EditShortcodeUserProfile.php
196 lines
1 <?php
2
3 namespace ProfilePress\Core\Admin\SettingsPages\ShortcodeBuilder\EditShortcodeUserProfile;
4
5 use ProfilePress\Core\Admin\SettingsPages\ShortcodeBuilder\ShortcodeInserterTrait;
6 use ProfilePress\Core\Classes\FormRepository;
7
8 class EditShortcodeUserProfile
9 {
10 use ShortcodeInserterTrait;
11
12 private $builder_errors;
13
14 public function __construct()
15 {
16 add_action('admin_init', [$this, 'save_edit']);
17 add_action('ppress_admin_notices', [$this, 'admin_notices']);
18 }
19
20 public function available_shortcodes()
21 {
22 return apply_filters('ppress_user_profile_available_shortcodes', [
23 'profile-username' => [
24 'description' => esc_html__('Username of user', 'wp-user-avatar'),
25 'shortcode' => 'profile-username',
26 ],
27 'profile-email' => [
28 'description' => esc_html__('Email address of user', 'wp-user-avatar'),
29 'shortcode' => 'profile-email',
30 ],
31 'profile-website' => [
32 'description' => esc_html__('Website URL of user', 'wp-user-avatar'),
33 'shortcode' => 'profile-website',
34 ],
35 'profile-nickname' => [
36 'description' => esc_html__('Nickname of user', 'wp-user-avatar'),
37 'shortcode' => 'profile-nickname',
38 ],
39 'profile-display-name' => [
40 'description' => esc_html__('Display name of user', 'wp-user-avatar'),
41 'shortcode' => 'profile-display-name',
42 ],
43 'profile-first-name' => [
44 'description' => esc_html__('First name of user', 'wp-user-avatar'),
45 'shortcode' => 'profile-first-name',
46 ],
47 'profile-last-name' => [
48 'description' => esc_html__('Last name of user', 'wp-user-avatar'),
49 'shortcode' => 'profile-last-name',
50 ],
51 'profile-bio' => [
52 'description' => esc_html__('Biographical info of user', 'wp-user-avatar'),
53 'shortcode' => 'profile-bio',
54 ],
55 'profile-cpf' => [
56 'description' => esc_html__('Custom field information', 'wp-user-avatar'),
57 'shortcode' => 'profile-cpf',
58 'attributes' => [
59 'key' => [
60 'label' => esc_html__('Field key', 'wp-user-avatar'),
61 'field' => 'text'
62 ]
63 ]
64 ],
65 'profile-file' => [
66 'description' => esc_html__('Link to uploaded file', 'wp-user-avatar'),
67 'shortcode' => 'profile-file',
68 'attributes' => [
69 'key' => [
70 'label' => esc_html__('Field key', 'wp-user-avatar'),
71 'field' => 'text'
72 ],
73 'raw' => [
74 'label' => esc_html__('Check to return URL', 'wp-user-avatar'),
75 'field' => 'checkbox'
76 ],
77 ]
78 ],
79 'profile-avatar-url' => [
80 'description' => esc_html__('URL of User profile picture or avatar', 'wp-user-avatar'),
81 'shortcode' => 'profile-avatar-url'
82 ],
83 'profile-date-registered' => [
84 'description' => esc_html__('Date of user registration', 'wp-user-avatar'),
85 'shortcode' => 'profile-date-registered'
86 ],
87 'profile-post-count' => [
88 'description' => esc_html__('Number of posts published by user', 'wp-user-avatar'),
89 'shortcode' => 'profile-post-count'
90 ],
91 'profile-comment-count' => [
92 'description' => esc_html__('Number of comments submitted by user', 'wp-user-avatar'),
93 'shortcode' => 'profile-comment-count'
94 ],
95 'profile-post-list' => [
96 'description' => esc_html__('List of posts authored by user', 'wp-user-avatar'),
97 'shortcode' => 'profile-post-list',
98 'attributes' => [
99 'limit' => [
100 'label' => esc_html__('Limit', 'wp-user-avatar'),
101 'field' => 'number'
102 ]
103 ]
104 ],
105 'profile-comment-list' => [
106 'description' => esc_html__('List of comments by user', 'wp-user-avatar'),
107 'shortcode' => 'profile-comment-list',
108 'attributes' => [
109 'limit' => [
110 'label' => esc_html__('Limit', 'wp-user-avatar'),
111 'field' => 'number'
112 ]
113 ]
114 ],
115 'profile-author-posts-url' => [
116 'description' => esc_html__('URL to author posts page', 'wp-user-avatar'),
117 'shortcode' => 'profile-author-posts-url'
118 ],
119 'profile-hide-empty-data' => [
120 'description' => esc_html__('Hide content if profile information is empty. Do not forget to close the shortcode with [/profile-hide-empty-data]', 'wp-user-avatar'),
121 'shortcode' => 'profile-hide-empty-data',
122 'attributes' => [
123 'field' => [
124 'label' => esc_html__('Field ID', 'wp-user-avatar'),
125 'field' => 'text'
126 ]
127 ]
128 ],
129 ]) + self::global_shortcodes();
130 }
131
132 public function admin_notices()
133 {
134 if (isset($this->builder_errors)) {
135 echo '<div id="message" class="error notice is-dismissible"><p><strong>' . $this->builder_errors . '</strong></p></div>';
136
137 return;
138 }
139
140 if (@$_GET['view'] == 'edit-shortcode-user-profile' && @$_GET['form-edited']) {
141 echo '<div id="message" class="updated notice is-dismissible"><p><strong>' . esc_html__('Changes saved.', 'wp-user-avatar') . '</strong></p></div>';
142 }
143 }
144
145 public function edit_screen()
146 {
147 $this->traitInit($this->available_shortcodes());
148 require PPRESS_ADMIN_SETTINGS_PAGE_FOLDER . 'ShortcodeBuilder/EditShortcodeUserProfile/edit_screen.php';
149 }
150
151 public function save_edit()
152 {
153 if ( ! current_user_can('manage_options') || ! isset($_POST['edit_user_profile_page']) || ! ppress_verify_nonce()) return;
154
155 $id = absint($_GET['id']);
156 $title = @sanitize_text_field($_POST['fep_title']);
157 $structure = @stripslashes($_POST['fep_structure']);
158 $css = @stripslashes($_POST['fep_css']);
159
160
161 if (empty($title)) {
162 $this->builder_errors = esc_html__('Title is empty', 'wp-user-avatar');
163 } elseif (empty($structure)) {
164 $this->builder_errors = esc_html__('Structure is missing', 'wp-user-avatar');
165 }
166
167 if (isset($this->builder_errors)) return;
168
169 FormRepository::update_form(
170 $id,
171 FormRepository::USER_PROFILE_TYPE,
172 $title,
173 apply_filters('ppress_shortcode_builder_registration_meta', [
174 FormRepository::FORM_STRUCTURE => $structure,
175 FormRepository::FORM_CSS => $css,
176 ])
177 );
178
179 wp_safe_redirect(esc_url_raw(add_query_arg('form-edited', 'true')));
180 exit;
181 }
182
183 /**
184 * @return EditShortcodeUserProfile
185 */
186 public static function get_instance()
187 {
188 static $instance = null;
189
190 if (is_null($instance)) {
191 $instance = new self();
192 }
193
194 return $instance;
195 }
196 }