Skip to content

Commit 448b578

Browse files
authored
[RUA-52] membership trigger: registration (#57)
* [RUA-52] membership trigger: registration * [RUA-52] add trigger. tweaks * [RUA-52] db update * [RUA-52] build js * [RUA-52] setting ui * [RUA-52] fix namespaces
1 parent e932a43 commit 448b578

11 files changed

+130
-54
lines changed

admin/settings.php

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -164,22 +164,22 @@ public function init_settings()
164164
]
165165
];
166166

167-
$levels = [
168-
0 => __('-- None --')
169-
];
170-
foreach (RUA_App::instance()->get_levels() as $id => $level) {
171-
$levels[$level->ID] = $level->post_title;
167+
$default_level_id = get_option('rua-registration-level');
168+
if($default_level_id !== false) {
169+
$this->settings['general']['fields'][] = [
170+
'name' => 'rua-registration-level',
171+
'title' => __('New User Default Level', 'restrict-user-access'),
172+
'callback' => [$this,'setting_moved'],
173+
'args' => [
174+
'option' => sprintf(
175+
'<a href="admin.php?page=wprua-level&post=%d#top#section-members"><i>Setting has been converted to a Membership Automation</i></a>',
176+
$default_level_id
177+
),
178+
],
179+
'register' => false
180+
];
172181
}
173182

174-
$this->settings['general']['fields'][] = [
175-
'name' => 'rua-registration-level',
176-
'title' => __('New User Default Level', 'restrict-user-access'),
177-
'callback' => [$this,'dropdown'],
178-
'args' => [
179-
'options' => $levels
180-
]
181-
];
182-
183183
$default_role = get_option('default_role');
184184
$roles = get_editable_roles();
185185
$this->settings['general']['fields'][] = [
@@ -336,10 +336,12 @@ public function dropdown($args)
336336
public function setting_moved($args)
337337
{
338338
echo $args['option'];
339-
echo '<p class="description">' . sprintf(
340-
__('Setting can be changed in %s', 'restrict-user-access'),
341-
'<a href="' . admin_url($args['url']) . '">' . $args['wp_title'] . '</a>'
342-
) . '</p>';
339+
if(isset($args['url'],$args['wp_title'])) {
340+
echo '<p class="description">' . sprintf(
341+
__('Setting can be changed in %s', 'restrict-user-access'),
342+
'<a href="' . admin_url($args['url']) . '">' . $args['wp_title'] . '</a>'
343+
) . '</p>';
344+
}
343345
}
344346

345347
private function get_setting_value($args)

assets/js/edit.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,15 @@
101101

102102
var $content = $('<div data-no="'+i+'" class="rua-member-trigger"><span class="rua-member-trigger-icon dashicons '+option.getAttribute('data-icon')+'"></span> ' + option.getAttribute('data-sentence') + ' <input type="hidden" name="member_automations['+i+'][name]" value="'+option.value+'" /></div>');
103103

104-
var $contentSelectorLocal = $('<select></select>');
104+
if(option.getAttribute('data-search') === '0') {
105+
$content.append('<input type="hidden" name="member_automations['+i+'][value]" value="1" /><span class="js-rua-member-trigger-remove wpca-condition-remove wpca-pull-right dashicons dashicons-trash"></span>');
106+
$container.append($content);
107+
i++;
108+
e.target.value = "";
109+
return;
110+
}
111+
112+
var $contentSelectorLocal = $('<select><option></option></select>');
105113
$content.append($contentSelectorLocal);
106114
$container.append($content);
107115

@@ -115,6 +123,7 @@
115123
minimumInputLength: 0,
116124
closeOnSelect: true,//false not working properly when hiding selected
117125
width:"250px",
126+
placeholder: '-- Select --',
118127
language: {
119128
noResults:function(){
120129
return WPCA.noResults;

assets/js/edit.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

db_updates.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,29 @@
2121
$rua_db_updater->register_version_update('2.5', 'rua_update_to_25');
2222
$rua_db_updater->register_version_update('2.6', 'rua_update_to_26');
2323
$rua_db_updater->register_version_update('2.7', 'rua_update_to_27');
24+
$rua_db_updater->register_version_update('2.8', 'rua_update_to_28');
25+
26+
function rua_update_to_28()
27+
{
28+
//migrate "New User Default Level" setting to automator
29+
$level_id = get_option('rua-registration-level', 0);
30+
if(empty($level_id)) {
31+
return true;
32+
}
33+
34+
$metadata = get_post_meta($level_id, '_ca_member_automations', true);
35+
if (!is_array($metadata) || empty($metadata)) {
36+
$metadata = [];
37+
}
38+
$metadata[] = [
39+
'name' => 'user_registration',
40+
'value' => 1
41+
];
42+
43+
update_post_meta($level_id, '_ca_member_automations', $metadata);
44+
45+
return true;
46+
}
2447

2548
function rua_update_to_27()
2649
{

level.php

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,6 @@ protected function add_actions()
3737
'template_redirect',
3838
[$this,'authorize_access']
3939
);
40-
add_action(
41-
'user_register',
42-
[$this,'registered_add_level']
43-
);
4440
}
4541

4642
/**
@@ -463,22 +459,4 @@ public function get_levels_caps($levels)
463459
}
464460
return $caps;
465461
}
466-
467-
/**
468-
* Maybe add level on user register
469-
*
470-
* @since 0.10
471-
* @param int $user_id
472-
* @return void
473-
*/
474-
public function registered_add_level($user_id)
475-
{
476-
try {
477-
$level_id = get_option('rua-registration-level', 0);
478-
if ($level_id) {
479-
rua_get_user($user_id)->add_level($level_id);
480-
}
481-
} catch (Exception $e) {
482-
}
483-
}
484462
}

src/Membership/Automator/AutomatorService.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public function get_level_automators()
3131
new EDDProductTriggerAutomator(),
3232
new WooProductTriggerAutomator(),
3333
new GiveWPDonationTriggerAutomator(),
34+
new RegistrationTriggerAutomator()
3435
];
3536

3637
$this->level_automators = new \RUA_Collection();

0 commit comments

Comments
 (0)