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.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 / ShortcodeParser / MelangeTag.php
wp-user-avatar / src / ShortcodeParser Last commit date
Builder 5 years ago MyAccount 5 years ago EditProfileTag.php 5 years ago FormProcessor.php 5 years ago FrontendProfileTag.php 5 years ago LoginFormTag.php 5 years ago MelangeTag.php 5 years ago MemberDirectoryTag.php 5 years ago PasswordResetTag.php 5 years ago RegistrationFormTag.php 5 years ago index.php 5 years ago
MelangeTag.php
128 lines
1 <?php
2
3 namespace ProfilePress\Core\ShortcodeParser;
4
5 use ProfilePress\Core\Classes\EditUserProfile;
6 use ProfilePress\Core\Classes\FormRepository as FR;
7
8 class MelangeTag extends FormProcessor
9 {
10 public function __construct()
11 {
12 /**
13 * We're not including check_password_reset_key(), and process_password_reset_handler_form()
14 * cos it is already active and called by PasswordResetTag.
15 *
16 * Using priority 999999999 'cos we want it to run after that of their respective form types.
17 */
18 add_action('wp', [$this, 'process_password_reset_form'], 999999999);
19 add_action('wp', [$this, 'process_registration_form'], 999999999);
20 add_action('wp', [$this, 'process_login_form'], 999999999);
21 add_action('wp', [$this, 'process_edit_profile_form'], 999999999);
22
23 add_shortcode('profilepress-melange', [$this, 'parser']);
24 }
25
26 public function parser($atts)
27 {
28 $atts = shortcode_atts(['id' => '', 'redirect' => ''], $atts);
29
30 $id = absint($atts['id']);
31 $redirect = isset($atts['redirect']) ? esc_url_raw($atts['redirect']) : '';
32
33 if (is_string($this->password_reset_form_error) && ! empty($this->password_reset_form_error)) {
34 $response = apply_filters('ppress_password_reset_notice', $this->password_reset_form_error, $id);
35 }
36
37 if (is_array($this->password_reset_form_error) && isset($this->password_reset_form_error[$id])) {
38 $response = apply_filters('ppress_password_reset_notice', $this->password_reset_form_error[$id], $id);
39 }
40
41 if (is_string($this->login_form_error) && ! empty($this->login_form_error)) {
42 $response = apply_filters('ppress_login_error', $this->login_form_error, $id);
43 }
44
45 if (is_array($this->login_form_error) && isset($this->login_form_error[$id])) {
46 $response = apply_filters('ppress_login_error', $this->login_form_error[$id], $id);
47 }
48
49 if (isset($this->registration_form_error[$id])) {
50 $response = apply_filters('ppress_registration_status', $this->registration_form_error[$id], $id, $redirect);
51 }
52
53 if (isset($_GET['edit']) && ($_GET['edit'] == 'true')) {
54 $response = apply_filters('ppress_edit_profile_status', html_entity_decode(EditUserProfile::get_success_message($id, true)), $id);
55 }
56
57 if (isset($this->edit_profile_form_error[$id])) {
58 $response = apply_filters('ppress_edit_profile_status', $this->edit_profile_form_error[$id], $id);
59 }
60
61 // pp_login_error_output is used by modules eg email confirmation to output custom login notices.
62 if (empty($response)) $response = apply_filters('ppress_login_error_output', '');
63
64 $attribution_start = apply_filters('ppress_hide_attribution', '<!-- This (Melange) form was created and powered by ProfilePress WordPress plugin - https://profilepress.net -->' . "\r\n");
65 $attribution_end = apply_filters('ppress_hide_attribution', "\r\n" . '<!-- / ProfilePress WordPress plugin. -->' . "\r\n");
66
67 $css = self::get_melange_css($id);
68
69 $class = 'pp-melange-form-wrap';
70 if (isset($_GET['key'], $_GET['login'])) {
71 $class = 'pp-password-reset-handler-wrap';
72 }
73 $container_div_start = sprintf('<div id="pp-melange-form-%s-wrap" class="pp-form-container %s">', $id, $class);
74 $container_div_end = '</div>';
75
76 return $attribution_start . $css . $container_div_start . $response . $this->get_melange_structure($id, $redirect) . $container_div_end . $attribution_end;
77 }
78
79
80 /**
81 * Get the melange structure from the database
82 *
83 * @param int $id
84 * @param string $redirect
85 *
86 * @return string
87 */
88 public function get_melange_structure($id, $redirect)
89 {
90 if ('GET' == $_SERVER['REQUEST_METHOD'] && isset($_REQUEST['key'], $_REQUEST['login'])) {
91 $structure = '<form method="post">' . PasswordResetTag::get_password_reset_handler_structure() . '</form>';
92 } else {
93 $structure = FR::get_form_meta($id, FR::MELANGE_TYPE, FR::FORM_STRUCTURE);
94 }
95
96 $GLOBALS['pp_melange_form_id'] = $id;
97 $GLOBALS['pp_melange_form_redirect'] = $redirect;
98
99 return do_shortcode($structure);
100 }
101
102
103 /**
104 * Get the CSS stylesheet for the ID melange
105 *
106 * @return string
107 */
108 public static function get_melange_css($melange_id)
109 {
110 // if no id is set return
111 if ( ! isset($melange_id)) return '';
112
113 $melange_css = FR::get_form_meta($melange_id, FR::MELANGE_TYPE, FR::FORM_CSS);
114
115 return "<style type=\"text/css\">\r\n $melange_css \r\n</style>";
116 }
117
118 public static function get_instance()
119 {
120 static $instance = false;
121
122 if ( ! $instance) {
123 $instance = new self;
124 }
125
126 return $instance;
127 }
128 }