PluginProbe
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress / 11.0.2
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress v11.0.2
11.1.1 11.1.0 11.0.5 11.0.4 11.0.3 11.0.2 11.0.1 11.0.0 10.11.1 10.11.0 10.10.2 10.10.1 10.10.0 10.9.1 trunk 10.0.0 10.0.1 10.1.0 10.1.1 10.1.2 10.1.3 10.1.4 10.2.0 10.2.1 10.2.2 All 62 releases
acymailing / front / FrontViews / Frontusers / tmpl / profile.php

profile.php in AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress 11.0.2, at front/FrontViews/Frontusers/tmpl/profile.php

222 lines 10.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 // phpcs:disable WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- View file, its variables are local to the include scope, not true globals.
3 defined('ABSPATH') || die('Restricted Access');
4 $formName = acym_getModuleFormName();
5 ?>
6 <div id="acym_fulldiv_<?php echo esc_attr($formName); ?>" class="acym_front_page <?php echo empty($data['suffix']) ? '' : esc_attr($data['suffix']); ?>">
7 <?php
8 if (!empty($data['show_page_heading'])) {
9 echo '<h1 class="contentheading'.esc_attr($data['suffix']).'">'.esc_html($data['page_heading']).'</h1>';
10 }
11
12 if (!empty($data['introtext'])) {
13 echo '<span class="acym_introtext">'.esc_html($data['introtext']).'</span>';
14 }
15 ?>
16
17 <form enctype="multipart/form-data"
18 action="<?php echo esc_url(acym_frontendLink('frontusers'.(acym_isNoTemplate() ? '&'.acym_noTemplate() : ''))); ?>"
19 method="post"
20 name="<?php echo esc_attr($formName); ?>"
21 id="<?php echo esc_attr($formName); ?>"
22 onsubmit="this.querySelector('input[type=submit]').click(); return false;" novalidate>
23 <fieldset class="adminform acy_user_info">
24 <legend><span><?php echo esc_html(acym_translation('ACYM_USER_INFORMATION')); ?></span></legend>
25 <div id="acyuserinfo">
26 <?php
27 foreach ($data['fields'] as $field) {
28 $field->option = !empty($field->option) ? json_decode($field->option) : new stdClass();
29 $fieldDB = empty($field->option->fieldDB) ? '' : json_decode($field->option->fieldDB);
30 $field->value = empty($field->value) ? '' : json_decode($field->value);
31 $valuesArray = [];
32 if (!empty($field->value)) {
33 foreach ($field->value as $value) {
34 $valueTmp = new stdClass();
35 $valueTmp->text = $value->title;
36 $valueTmp->value = $value->value;
37 if ($value->disabled == 'y') {
38 $valueTmp->disable = true;
39 }
40 $valuesArray[$value->value] = $valueTmp;
41 }
42 }
43 if (!empty($fieldDB) && !empty($fieldDB->value)) {
44 $fromDB = $data['fieldClass']->getValueFromDB($fieldDB);
45 foreach ($fromDB as $value) {
46 $valuesArray[$value->value] = $value->title;
47 }
48 }
49 echo '<span class="onefield fieldacy'.esc_attr($field->id).'" id="field_'.esc_attr($field->id).'">';
50
51 $data['fieldClass']->displayField($field, $field->default_value, $valuesArray, true, true, $data['user']);
52 echo '</span>';
53
54 if ($field->id == 2 && $this->config->get('email_confirmation')) {
55 $data['fieldClass']->setEmailConfirmationField(true, $field, 'span', false);
56 }
57 }
58 ?>
59 </div>
60
61 <?php
62 if ($this->config->get('user_tracking_control', 0) && !empty($data['user']->id)) {
63 echo '<div class="onefield fieldacytracking" id="field_tracking_'.esc_attr($formName).'">';
64 echo '<label for="mailingdata_tracking_'.esc_attr($formName).'">';
65 echo '<input type="hidden" name="user[tracking]" value="0"/>';
66 echo '<input id="mailingdata_tracking_'.esc_attr($formName).'" class="checkbox" type="checkbox" name="user[tracking]" value="1" '.((int)$data['user']->tracking === 1 ? 'checked="checked"' : '').'/> '.esc_html(
67 acym_translation('ACYM_ALLOW_TRACKING')
68 );
69 echo '</label>';
70 echo '</div>';
71 }
72
73 $exportButton = $this->config->get('gdpr_export', 0);
74 $deleteButton = $this->config->get('gdpr_delete', 0);
75 if (!empty($data['user']->id) && !(empty($exportButton) && empty($deleteButton))) {
76 ?>
77 <div id="acyuseractions">
78 <table>
79 <tr>
80 <?php
81 if ($exportButton == 1) {
82 ?>
83 <td id="acybutton_subscriber_download_data" <?php if ($deleteButton == 1) {
84 echo 'style="padding-right: 10px;"';
85 } ?>>
86 <button class="btn btn-secondary button" onclick="this.form.task.value='exportdata'; this.form.submit(); return false;">
87 <?php echo esc_html(acym_translation('ACYM_EXPORT_MY_DATA')); ?>
88 </button>
89 </td>
90 <?php
91 }
92 if ($deleteButton == 1) {
93 ?>
94 <td id="acybutton_subscriber_delete_data">
95 <button class="btn btn-secondary button"
96 onclick="if(confirm(ACYM_JS_TXT.ACYM_ARE_YOU_SURE + '\n' + ACYM_JS_TXT.ACYM_DELETE_MY_DATA_CONFIRM)){ this.form.task.value = 'gdprDelete'; this.form.submit(); } return false;">
97 <?php echo esc_html(acym_translation('ACYM_DELETE_MY_DATA')); ?>
98 </button>
99 </td>
100 <?php
101 }
102 ?>
103 </tr>
104 </table>
105 </div>
106 <?php } ?>
107 </fieldset>
108 <?php
109 if ($data['displayLists']) {
110 ?>
111 <fieldset class="adminform acy_subscription_list margin-bottom-1">
112 <legend><span><?php echo esc_html(acym_translation('ACYM_SUBSCRIPTION')); ?></span></legend>
113
114 <div id="acyusersubscription">
115 <?php
116 if (empty($data['dropdown'])) {
117 $values = [];
118 $values[0] = acym_selectOption('-1', 'ACYM_NO');
119 $values[1] = acym_selectOption('1', 'ACYM_YES');
120 $values[0]->class = 'btn-danger';
121 $values[1]->class = 'btn-success';
122
123 $k = 0;
124 foreach ($data['subscription'] as $row) {
125 if (empty($row->active) || !$row->visible) {
126 continue;
127 }
128 if (empty($row->status)) {
129 $row->status = -1;
130 }
131
132 echo '<div class="acym_list">
133 <div class="acystatus">';
134 acym_radio(
135 $values,
136 'data[listsub]['.$row->id.'][status]',
137 $row->status,
138 [],
139 ['id' => 'status'.$k++],
140 true
141 );
142 echo '</div>
143 <div class="list_name">'.esc_html(!empty($row->display_name) ? $row->display_name : $row->name).'</div>
144 </div>';
145 }
146 } else {
147 $selectedIndex = '';
148 $k = 0;
149 $dropdownOpts = [];
150 foreach ($data['subscription'] as $key => $row) {
151 if (empty($row->active) || !$row->visible) {
152 continue;
153 }
154
155 $value = 0;
156 $dropdownOpts[] = acym_selectOption($row->id, (!empty($row->display_name) ? $row->display_name : $row->name));
157 if ($row->status == 1) {
158 $value = 1;
159 $selectedIndex = $k;
160 }
161 echo '<input type="hidden" class="listsub-dropdown" name="data[listsub]['.esc_attr($row->id).'][status]" value="'.esc_attr($value).'">';
162
163 $k++;
164 }
165
166 acym_select($dropdownOpts, 'data[listsubdropdown]', $selectedIndex, null, 'value', 'text', null, false, true);
167 }
168 ?>
169 </div>
170 </fieldset>
171 <?php
172 }
173
174 if (empty($data['user']->id) && $data['config']->get('captcha', 'none') !== 'none' && !empty($data['captchaHelper'])) {
175 echo '<div id="trcaptcha" class="acy_onefield">';
176 $data['captchaHelper']->display($formName);
177 echo '</div>';
178 }
179
180 if (!empty($data['source'])) {
181 echo '<input type="hidden" name="acy_source" value="'.esc_attr($data['source']).'" />';
182 }
183
184 // CMS specific things
185 if (!empty($data['Itemid'])) {
186 echo '<input type="hidden" name="Itemid" value="'.esc_attr($data['Itemid']).'" />';
187 }
188
189 if (acym_isNoTemplate()) {
190 echo '<input type="hidden" name="tmpl" value="component"/>';
191 }
192
193 // Form params
194 acym_formOptions(true, 'savechanges', '', 'frontusers');
195
196 if (isset($data['disableButtons']) && $data['disableButtons']) {
197 $actionClick = 'return false;';
198 } else {
199 $actionClick = 'return submitAcymForm(\'savechanges\',\''.$formName.'\', \'acym_checkChangeForm\');';
200 }
201 ?>
202
203 <input type="hidden" name="hiddenlists" value="<?php echo esc_attr(implode(',', $data['hiddenlists'])); ?>" />
204 <input type="hidden" name="user[id]" value="<?php echo esc_attr($data['user']->id); ?>" />
205 <input type="hidden" name="userId" value="<?php echo esc_attr($data['user']->id); ?>" />
206 <input type="hidden" name="userKey" value="<?php echo esc_attr($data['user']->key ?? ''); ?>" />
207 <input type="hidden" name="ajax" value="1" />
208 <input type="hidden" name="acyprofile" value="1" />
209
210 <p class="acymodifybutton">
211 <button class="btn btn-primary"
212 type="submit"
213 onclick="<?php echo esc_attr($actionClick); ?>">
214 <?php echo esc_html(acym_translation(empty($data['user']->id) ? 'ACYM_SUBSCRIBE' : 'ACYM_SAVE_CHANGES')); ?>
215 </button>
216 </p>
217 </form>
218 <?php if (!empty($data['posttext'])) {
219 echo '<span class="acym_posttext">'.esc_html($data['posttext']).'</span>';
220 } ?>
221 </div>
222