Below is a differential between the unpatched vulnerable code and the patched update, for reference.
--- a/privatecontent-free/builders_integration/guten_elements/login/login.php
+++ b/privatecontent-free/builders_integration/guten_elements/login/login.php
@@ -6,19 +6,19 @@
// structure
$defaults = array(
'redirect' => array(
- 'label' => esc_html__('Custom redirect', 'privatecontent-free'),
- 'help' => esc_html__('Use a valid URL or "refresh" keyword', 'privatecontent-free'),
+ 'label' => esc_html__('Custom redirect', 'pc_ml'),
+ 'help' => esc_html__('Use a valid URL or "refresh" keyword', 'pc_ml'),
'type' => 'text',
'default' => '',
'panel' => 'main',
),
'pc_align' => array(
- 'label' => esc_html__('Form alignment', 'privatecontent-free'),
+ 'label' => esc_html__('Form alignment', 'pc_ml'),
'type' => 'select',
'opts' => array(
- 'center' => esc_html__('Center', 'privatecontent-free'),
- 'left' => esc_html__('Left', 'privatecontent-free'),
- 'right' => esc_html__('Right', 'privatecontent-free'),
+ 'center' => esc_html__('Center', 'pc_ml'),
+ 'left' => esc_html__('Left', 'pc_ml'),
+ 'right' => esc_html__('Right', 'pc_ml'),
),
'default' => 'center',
'panel' => 'main',
--- a/privatecontent-free/builders_integration/guten_elements/logout/logout.php
+++ b/privatecontent-free/builders_integration/guten_elements/logout/logout.php
@@ -6,8 +6,8 @@
// structure
$defaults = array(
'redirect' => array(
- 'label' => esc_html__('Custom redirect', 'privatecontent-free'),
- 'help' => esc_html__('Use a valid URL or "refresh" keyword', 'privatecontent-free'),
+ 'label' => esc_html__('Custom redirect', 'pc_ml'),
+ 'help' => esc_html__('Use a valid URL or "refresh" keyword', 'pc_ml'),
'type' => 'text',
'default' => '',
'panel' => 'main',
--- a/privatecontent-free/builders_integration/guten_elements/registr/registr.php
+++ b/privatecontent-free/builders_integration/guten_elements/registr/registr.php
@@ -19,7 +19,7 @@
foreach($rf_terms as $term) {
$rf[ $term->term_id ] = $term->name;
}
- $vars['id'] = array('' => esc_html__('Select a form', 'privatecontent-free')) + $rf;
+ $vars['id'] = array('' => esc_html__('Select a form', 'pc_ml')) + $rf;
// user cats
@@ -47,44 +47,44 @@
// structure
$defaults = array(
'id' => array(
- 'label' => esc_html__('Which form?', 'privatecontent-free'),
+ 'label' => esc_html__('Which form?', 'pc_ml'),
'type' => 'select',
'opts' => array(),
'default' => array(),
'panel' => 'main',
),
'layout' => array(
- 'label' => esc_html__('Layout', 'privatecontent-free'),
+ 'label' => esc_html__('Layout', 'pc_ml'),
'type' => 'select',
'opts' => array(
- '' => esc_html__('Default one', 'privatecontent-free'),
- 'one_col' => esc_html__('Single column', 'privatecontent-free'),
- 'fluid' => esc_html__('Fluid (multi column)', 'privatecontent-free'),
+ '' => esc_html__('Default one', 'pc_ml'),
+ 'one_col' => esc_html__('Single column', 'pc_ml'),
+ 'fluid' => esc_html__('Fluid (multi column)', 'pc_ml'),
),
'default' => '',
'panel' => 'main',
),
'custom_categories' => array(
- 'label' => esc_html__('Custom categories assignment (ignored if field is in form)', 'privatecontent-free'),
+ 'label' => esc_html__('Custom categories assignment (ignored if field is in form)', 'pc_ml'),
'type' => 'multi-opt',
'opts' => array(),
'default' => '',
'panel' => 'main',
),
'redirect' => array(
- 'label' => esc_html__('Custom redirect', 'privatecontent-free'),
- 'help' => esc_html__('Use a valid URL or "refresh" keyword', 'privatecontent-free'),
+ 'label' => esc_html__('Custom redirect', 'pc_ml'),
+ 'help' => esc_html__('Use a valid URL or "refresh" keyword', 'pc_ml'),
'type' => 'text',
'default' => '',
'panel' => 'main',
),
'pc_align' => array(
- 'label' => esc_html__('Form alignment', 'privatecontent-free'),
+ 'label' => esc_html__('Form alignment', 'pc_ml'),
'type' => 'select',
'opts' => array(
- 'center' => esc_html__('Center', 'privatecontent-free'),
- 'left' => esc_html__('Left', 'privatecontent-free'),
- 'right' => esc_html__('Right', 'privatecontent-free'),
+ 'center' => esc_html__('Center', 'pc_ml'),
+ 'left' => esc_html__('Left', 'pc_ml'),
+ 'right' => esc_html__('Right', 'pc_ml'),
),
'default' => 'center',
'panel' => 'main',
--- a/privatecontent-free/builders_integration/guten_elements/user_del/user_del.php
+++ b/privatecontent-free/builders_integration/guten_elements/user_del/user_del.php
@@ -6,19 +6,19 @@
// structure
$defaults = array(
'redirect' => array(
- 'label' => esc_html__('Custom redirect', 'privatecontent-free'),
- 'help' => esc_html__('Use a valid URL or "refresh" keyword', 'privatecontent-free'),
+ 'label' => esc_html__('Custom redirect', 'pc_ml'),
+ 'help' => esc_html__('Use a valid URL or "refresh" keyword', 'pc_ml'),
'type' => 'text',
'default' => '',
'panel' => 'main',
),
'pc_align' => array(
- 'label' => esc_html__('Form alignment', 'privatecontent-free'),
+ 'label' => esc_html__('Form alignment', 'pc_ml'),
'type' => 'select',
'opts' => array(
- 'center' => esc_html__('Center', 'privatecontent-free'),
- 'left' => esc_html__('Left', 'privatecontent-free'),
- 'right' => esc_html__('Right', 'privatecontent-free'),
+ 'center' => esc_html__('Center', 'pc_ml'),
+ 'left' => esc_html__('Left', 'pc_ml'),
+ 'right' => esc_html__('Right', 'pc_ml'),
),
'default' => 'center',
'panel' => 'main',
--- a/privatecontent-free/builders_integration/gutenberg.php
+++ b/privatecontent-free/builders_integration/gutenberg.php
@@ -81,7 +81,7 @@
// Block panels
$panels = array(
'main' => array(
- 'title' => esc_html__('Main parameters', 'privatecontent-free'),
+ 'title' => esc_html__('Main parameters', 'pc_ml'),
'opened' => true
),
);
--- a/privatecontent-free/classes/engine_import_export.php
+++ b/privatecontent-free/classes/engine_import_export.php
@@ -13,8 +13,8 @@
// PC-FILTER - suite engine export - allow extra subjects to be injected. Passes the structure array(plugin-name => array(subj_id => subj_name))
$engine_ei_structure = array(
'PrivateContent Plugin' => array(
- 'pc_settings' => esc_html__('Settings', 'privatecontent-free'),
- 'pc_reg_form' => esc_html__('Registration forms', 'privatecontent-free'),
+ 'pc_settings' => esc_html__('Settings', 'pc_ml'),
+ 'pc_reg_form' => esc_html__('Registration forms', 'pc_ml'),
),
);
$this->engine_ei_structure = apply_filters('pc_engine_ie_structure', $engine_ei_structure);
@@ -148,7 +148,7 @@
return 'Missing uploaded file';
}
if($_FILES['pc_engine_import_json']['type'] !== 'application/json') {
- return esc_html__('Wrong file type', 'privatecontent-free');
+ return esc_html__('Wrong file type', 'pc_ml');
}
$contents = json_decode(file_get_contents(
sanitize_text_field($_FILES['pc_engine_import_json']['tmp_name'])
@@ -156,10 +156,10 @@
if(!is_array($contents) || !isset($contents['main']) || !isset($contents['subjs'])) {
- return esc_html__('Wrong or corrupted JSON data', 'privatecontent-free');
+ return esc_html__('Wrong or corrupted JSON data', 'pc_ml');
}
if(empty($contents['subjs']) || !is_array($contents['subjs'])) {
- return esc_html__('No import subjects found', 'privatecontent-free');
+ return esc_html__('No import subjects found', 'pc_ml');
}
$avail_subjs = $this->get_subjs();
@@ -171,7 +171,7 @@
}
if(empty($possible_choices)) {
- return esc_html__('No import subjects found', 'privatecontent-free');
+ return esc_html__('No import subjects found', 'pc_ml');
}
return $contents;
}
@@ -208,7 +208,7 @@
$pc_settings_baseurl
);
- $reports[$subj_id] = esc_html__('To complete the import, click on', 'privatecontent-free') .' <strong><a href="'. esc_attr($final_url) .'" target="_blank">'. esc_html__('this link', 'privatecontent-free') .' »</a></strong>';
+ $reports[$subj_id] = esc_html__('To complete the import, click on', 'pc_ml') .' <strong><a href="'. esc_attr($final_url) .'" target="_blank">'. esc_html__('this link', 'pc_ml') .' »</a></strong>';
}
// registration forms
@@ -252,7 +252,7 @@
$term_id = wp_insert_category($args);
if(is_wp_error($term_id)) {
- $import_report['errors'][$orig_term_id] = esc_html__('Error importing the registration form', 'privatecontent-free') .' "'. $term_data['name'] .'": '. $term_id->get_error_message();
+ $import_report['errors'][$orig_term_id] = esc_html__('Error importing the registration form', 'pc_ml') .' "'. $term_data['name'] .'": '. $term_id->get_error_message();
continue;
}
@@ -278,10 +278,10 @@
}
switch($report_subj) {
- case 'added' : $pre_txt = esc_html__('Registration forms added', 'privatecontent-free'); break;
- case 'overridden' : $pre_txt = esc_html__('Registration forms updated', 'privatecontent-free'); break;
- case 'ignored' : $pre_txt = esc_html__('Duplicate registration forms ignored', 'privatecontent-free'); break;
- case 'errors' : $pre_txt = esc_html__('Errors', 'privatecontent-free'); break;
+ case 'added' : $pre_txt = esc_html__('Registration forms added', 'pc_ml'); break;
+ case 'overridden' : $pre_txt = esc_html__('Registration forms updated', 'pc_ml'); break;
+ case 'ignored' : $pre_txt = esc_html__('Duplicate registration forms ignored', 'pc_ml'); break;
+ case 'errors' : $pre_txt = esc_html__('Errors', 'pc_ml'); break;
}
$html_report .= '
<li class="pc_import_report">
--- a/privatecontent-free/classes/pc_anti_bruteforce_static.php
+++ b/privatecontent-free/classes/pc_anti_bruteforce_static.php
@@ -95,7 +95,7 @@
// return error message for blocked visitors
public static function error_message() {
- return esc_attr__('Too many attempts, please try again in 30 minutes', 'privatecontent-free');
+ return esc_attr__('Too many attempts, please try again in 30 minutes', 'pc_ml');
}
--- a/privatecontent-free/classes/pc_form_framework.php
+++ b/privatecontent-free/classes/pc_form_framework.php
@@ -65,11 +65,11 @@
$custom_cat_name = (isset($args['use_custom_cat_name']) || isset($GLOBALS['pvtcont_custom_cat_name'])) ? trim(get_option('pg_reg_cat_label', '')) : '';
$cat_placeh_opt = (!is_admin() && !get_option('pg_reg_multiple_cats') && !empty(get_option('pg_reg_cat_placeh'))) ? array('' => get_option('pg_reg_cat_placeh')) : array();
- $group = esc_html__('Core fields', 'privatecontent-free');
+ $group = esc_html__('Core fields', 'pc_ml');
$fields = array(
'name' => array(
- 'label' => ($fist_last_name) ? esc_html__('First name', 'privatecontent-free') : esc_html__('Name', 'privatecontent-free'),
+ 'label' => ($fist_last_name) ? esc_html__('First name', 'pc_ml') : esc_html__('Name', 'pc_ml'),
'type' => 'text',
'subtype' => '',
'maxlen' => 150,
@@ -78,10 +78,10 @@
'icon' => get_option('pg_name_icon'), // FontAwesome icon class
'group' => $group,
'helper' => '',
- 'note' => ($fist_last_name) ? esc_html__('User first name', 'privatecontent-free') : esc_html__('User name', 'privatecontent-free')
+ 'note' => ($fist_last_name) ? esc_html__('User first name', 'pc_ml') : esc_html__('User name', 'pc_ml')
),
'surname' => array(
- 'label' => ($fist_last_name) ? esc_html__('Last name', 'privatecontent-free') : esc_html__('Surname', 'privatecontent-free'),
+ 'label' => ($fist_last_name) ? esc_html__('Last name', 'pc_ml') : esc_html__('Surname', 'pc_ml'),
'type' => 'text',
'subtype' => '',
'maxlen' => 150,
@@ -90,10 +90,10 @@
'icon' => get_option('pg_surname_icon'),
'group' => $group,
'helper' => '',
- 'note' => ($fist_last_name) ? esc_html__('User last name', 'privatecontent-free') : esc_html__('User name', 'privatecontent-free')
+ 'note' => ($fist_last_name) ? esc_html__('User last name', 'pc_ml') : esc_html__('User name', 'pc_ml')
),
'username' => array(
- 'label' => esc_html__('Username', 'privatecontent-free'),
+ 'label' => esc_html__('Username', 'pc_ml'),
'type' => 'text',
'subtype' => '',
'maxlen' => 150,
@@ -102,11 +102,11 @@
'icon' => get_option('pg_username_icon'),
'group' => $group,
'helper' => '',
- 'note' => esc_html__('Username used for the login', 'privatecontent-free'),
+ 'note' => esc_html__('Username used for the login', 'pc_ml'),
'sys_req' => true,
),
'psw' => array(
- 'label' => esc_html__('Password', 'privatecontent-free'),
+ 'label' => esc_html__('Password', 'pc_ml'),
'type' => 'password',
'subtype' => '',
'minlen' => get_option('pg_psw_min_length', 4),
@@ -116,11 +116,11 @@
'icon' => get_option('pg_psw_icon'),
'group' => $group,
'helper' => (get_option('pg_show_psw_helper')) ? $this->psw_requiremens() : '',
- 'note' => esc_html__('Password used for the login', 'privatecontent-free'),
+ 'note' => esc_html__('Password used for the login', 'pc_ml'),
'sys_req' => true
),
'categories' => array(
- 'label' => (empty($custom_cat_name)) ? esc_html__('Category', 'privatecontent-free') : $custom_cat_name,
+ 'label' => (empty($custom_cat_name)) ? esc_html__('Category', 'pc_ml') : $custom_cat_name,
'type' => 'select',
'subtype' => '',
'maxlen' => 20,
@@ -129,26 +129,26 @@
'icon' => get_option('pg_categories_icon'),
'group' => $group,
'helper' => '',
- 'note' => 'PrivateContent '. esc_html__('Categories', 'privatecontent-free'),
+ 'note' => 'PrivateContent '. esc_html__('Categories', 'pc_ml'),
'multiple' => (get_option('pg_reg_multiple_cats')) ? true : false,
'def_choice'=> array(),
'sys_req' => true
),
'email' => array(
- 'label' => esc_html__('E-Mail', 'privatecontent-free'),
+ 'label' => esc_html__('E-Mail', 'pc_ml'),
'type' => 'text',
'subtype' => 'email',
'maxlen' => 255,
'opt' => '',
'placeh' => get_option('pg_email_placeh'),
'icon' => get_option('pg_email_icon'),
- 'note' => esc_html__('User E-mail', 'privatecontent-free'),
+ 'note' => esc_html__('User E-mail', 'pc_ml'),
'group' => $group,
'helper' => '',
'sys_req' => $this->mail_is_required
),
'tel' => array(
- 'label' => esc_html__('Telephone', 'privatecontent-free'),
+ 'label' => esc_html__('Telephone', 'pc_ml'),
'type' => 'text',
'subtype' => '',
'maxlen' => 20,
@@ -157,10 +157,10 @@
'icon' => get_option('pg_tel_icon'),
'group' => $group,
'helper' => '',
- 'note' => esc_html__('User Telephone', 'privatecontent-free')
+ 'note' => esc_html__('User Telephone', 'pc_ml')
),
'pc_disclaimer' => array(
- 'label' => esc_html__("Disclaimer", 'privatecontent-free'),
+ 'label' => esc_html__("Disclaimer", 'pc_ml'),
'type' => 'single_checkbox',
'subtype' => '',
'maxlen' => 1,
@@ -169,7 +169,7 @@
'disclaimer'=> true,
'group' => $group,
'helper' => '',
- 'note' => esc_html__('Registration disclaimer', 'privatecontent-free'),
+ 'note' => esc_html__('Registration disclaimer', 'pc_ml'),
'sys_req' => true
)
);
@@ -223,7 +223,7 @@
// core is first
- $core_key = esc_html__('Core fields', 'privatecontent-free');
+ $core_key = esc_html__('Core fields', 'pc_ml');
if(isset($to_return[$core_key])) {
$to_prepend = $to_return[$core_key];
unset($to_return[$core_key]);
@@ -233,7 +233,7 @@
// not is last
if(!empty($ungrouped)) {
- $to_return[ esc_html__('Ungrouped', 'privatecontent-free') ] = $ungrouped;
+ $to_return[ esc_html__('Ungrouped', 'pc_ml') ] = $ungrouped;
}
return $to_return;
@@ -368,7 +368,7 @@
for($c=1; $c<=$this->form_pages; $c++) {
$sel_class = ($c === 1) ? 'class="pc_fpp_current pc_fpp_active"' : '';
- $form .= '<span '. $sel_class .' title="'. esc_attr__('go to page', 'privatecontent-free') .' '. $c .'" data-pag="'. $c .'" role="button" tabindex="0">'. $c .'</span>';
+ $form .= '<span '. $sel_class .' title="'. esc_attr__('go to page', 'pc_ml') .' '. $c .'" data-pag="'. $c .'" role="button" tabindex="0">'. $c .'</span>';
}
$form .= '
@@ -484,7 +484,7 @@
if(get_option('pg_single_psw_f_w_reveal') && $field == 'psw') {
$fdata['icon'] = 'far fa-eye';
- $icon_label = esc_attr__('toggle password visibility', 'privatecontent-free');
+ $icon_label = esc_attr__('toggle password visibility', 'pc_ml');
$role_btn = 'role="button" tabindex="0"';
}
@@ -595,7 +595,7 @@
// repeat psw specific data
// icon
- $rp_icon = (get_option('pg_repeat_psw_icon')) ? '<span class="pc_field_icon" title="'. esc_attr__('Repeat password', 'privatecontent-free') .'"><i class=" '. esc_attr( pc_static::fontawesome_v4_retrocomp(get_option('pg_repeat_psw_icon')) ) .'" aria-hidden="true"></i></span>' : '';
+ $rp_icon = (get_option('pg_repeat_psw_icon')) ? '<span class="pc_field_icon" title="'. esc_attr__('Repeat password', 'pc_ml') .'"><i class=" '. esc_attr( pc_static::fontawesome_v4_retrocomp(get_option('pg_repeat_psw_icon')) ) .'" aria-hidden="true"></i></span>' : '';
$rp_has_icon_class = ($rp_icon) ? 'pc_field_w_icon' : '';
////
@@ -618,7 +618,7 @@
if($field == 'psw' && !get_option('pg_single_psw_f_w_reveal')) {
$form .= '
<section class="'. $sect_classes .' pc_psw_confirm '. $rp_has_icon_class .'" '. $sect_atts .'>
- <label for="'. esc_attr($f_uniqid) .'_repeat">'. esc_html__('Repeat password', 'privatecontent-free').' '.$req_f_html.'</label>
+ <label for="'. esc_attr($f_uniqid) .'_repeat">'. esc_html__('Repeat password', 'pc_ml').' '.$req_f_html.'</label>
<div class="pc_field_container">
'. $rp_icon .'
<input type="'. $fdata['type'] .'" name="check_'. $field .'" '. $f_atts .' id="'. $f_uniqid .'_repeat" placeholder="'. esc_attr( get_option('pg_repeat_psw_placeh')).'" />
@@ -943,7 +943,7 @@
// check psw validation
$a++;
$indexes[$a]['index'] = 'check_psw';
- $indexes[$a]['label'] = esc_html__('Repeat password', 'privatecontent-free');
+ $indexes[$a]['label'] = esc_html__('Repeat password', 'pc_ml');
$indexes[$a]['maxlen'] = $fval['maxlen'];
}
@@ -975,7 +975,7 @@
include_once('simple_form_validator.php');
global $wpdb;
- $validator = new simple_fv('privatecontent-free');
+ $validator = new simple_fv('pc_ml');
$form_vals = $validator->getAllIndexVals($indexes, true);
// is a data-update form?
@@ -1008,16 +1008,16 @@
if($field['index'] == 'psw') {
$psw_strength = $this->check_psw_strength($fdata['psw']);
if($psw_strength !== true) {
- $validator->custom_error[esc_html__("Password strength", 'privatecontent-free')] = $psw_strength;
+ $validator->custom_error[esc_html__("Password strength", 'pc_ml')] = $psw_strength;
}
}
// username format must comply with WP format
if($field['index'] == 'username' && !validate_username($fdata['username'])) {
- $letters_part = (is_multisite()) ? esc_html__("lowercase letters", 'privatecontent-free') : esc_html__("letters", 'privatecontent-free');
+ $letters_part = (is_multisite()) ? esc_html__("lowercase letters", 'pc_ml') : esc_html__("letters", 'pc_ml');
/* translators: 1: letters specification. */
- $validator->custom_error[esc_html__("Username", 'privatecontent-free')] = sprintf(esc_html__("May only contain %s, numbers, spaces, periods, hyphens, underscores, and the @ symbol", 'privatecontent-free'), $letters_part);
+ $validator->custom_error[esc_html__("Username", 'pc_ml')] = sprintf(esc_html__("May only contain %s, numbers, spaces, periods, hyphens, underscores, and the @ symbol", 'pc_ml'), $letters_part);
}
// username unicity
@@ -1038,7 +1038,7 @@
$wpdb->query($prepared);
if($wpdb->num_rows) {
- $validator->custom_error[esc_html__("Username", 'privatecontent-free')] = esc_html__("Another user already has this username", 'privatecontent-free');
+ $validator->custom_error[esc_html__("Username", 'pc_ml')] = esc_html__("Another user already has this username", 'pc_ml');
}
}
@@ -1049,7 +1049,7 @@
foreach((array)$fdata['categories'] as $f_cat) {
if(!isset($cats[ absint($f_cat) ])) {
$name = $this->fields['categories']['label'];
- $validator->custom_error[$name] = esc_html__("One or more chosen categories are wrong", 'privatecontent-free');
+ $validator->custom_error[$name] = esc_html__("One or more chosen categories are wrong", 'pc_ml');
break;
}
}
@@ -1100,18 +1100,18 @@
$new_error = array();
foreach($options as $opt) {
if($opt == 'chars_digits') {
- if(!preg_match("((?=.*d)(?=.*[a-zA-Z]))", $psw)) {$new_error[] = esc_html__('characters and digits', 'privatecontent-free');}
+ if(!preg_match("((?=.*d)(?=.*[a-zA-Z]))", $psw)) {$new_error[] = esc_html__('characters and digits', 'pc_ml');}
}
elseif($opt == 'use_uppercase') {
- if(!preg_match("(.*[A-Z])", $psw)) {$new_error[] = esc_html__('an uppercase character', 'privatecontent-free');}
+ if(!preg_match("(.*[A-Z])", $psw)) {$new_error[] = esc_html__('an uppercase character', 'pc_ml');}
}
elseif($opt == 'use_symbols') {
- if(!preg_match("(.*[^A-Za-z0-9])", $psw)) {$new_error[] = esc_html__('a symbol', 'privatecontent-free');}
+ if(!preg_match("(.*[^A-Za-z0-9])", $psw)) {$new_error[] = esc_html__('a symbol', 'pc_ml');}
}
}
if(count($new_error)) {
- $imploded = str_replace(',', ' '. esc_html__('and', 'privatecontent-free'), implode(', ', $new_error));
- $regex_err = esc_html__('must contain at least', 'privatecontent-free') .' '. $imploded;
+ $imploded = str_replace(',', ' '. esc_html__('and', 'pc_ml'), implode(', ', $new_error));
+ $regex_err = esc_html__('must contain at least', 'pc_ml') .' '. $imploded;
}
return (!isset($regex_err)) ? true : $regex_err;
@@ -1187,23 +1187,23 @@
$strength = get_option('pg_psw_strength', array());
/* translators: 1: min length. */
- $txt = sprintf(esc_html__("Min. %s chars long", 'privatecontent-free'), $min_length);
+ $txt = sprintf(esc_html__("Min. %s chars long", 'pc_ml'), $min_length);
if(!empty($strength)) {
$opts = array();
foreach($strength as $opt) {
if($opt == 'chars_digits') {
- $opts[] = esc_html__('characters and digits', 'privatecontent-free');
+ $opts[] = esc_html__('characters and digits', 'pc_ml');
}
elseif($opt == 'use_uppercase') {
- $opts[] = esc_html__('an uppercase character', 'privatecontent-free');
+ $opts[] = esc_html__('an uppercase character', 'pc_ml');
}
elseif($opt == 'use_symbols') {
- $opts[] = esc_html__('a symbol', 'privatecontent-free');
+ $opts[] = esc_html__('a symbol', 'pc_ml');
}
}
- $txt .= '. '. ucfirst(esc_html__('must contain at least', 'privatecontent-free')) .': '. implode(', ', $opts);
+ $txt .= '. '. ucfirst(esc_html__('must contain at least', 'pc_ml')) .': '. implode(', ', $opts);
}
return $txt;
--- a/privatecontent-free/classes/pc_static.php
+++ b/privatecontent-free/classes/pc_static.php
@@ -219,7 +219,7 @@
//if no time was passed return 0 seconds
if ($timestamp < 1){
- return '1 '. esc_html__('second', 'privatecontent-free');
+ return '1 '. esc_html__('second', 'pc_ml');
}
//create multi-array with seconds and define values
@@ -244,12 +244,12 @@
// translatable strings
switch($point) {
- case 'year' : $txt = ($res > 1) ? esc_html__('years', 'privatecontent-free') : esc_html__('year', 'privatecontent-free'); break;
- case 'month': $txt = ($res > 1) ? esc_html__('months', 'privatecontent-free') : esc_html__('month', 'privatecontent-free'); break;
- case 'day' : $txt = ($res > 1) ? esc_html__('days', 'privatecontent-free') : esc_html__('day', 'privatecontent-free'); break;
- case 'hour' : $txt = ($res > 1) ? esc_html__('hours', 'privatecontent-free') : esc_html__('hour', 'privatecontent-free'); break;
- case'minute': $txt = ($res > 1) ? esc_html__('minutes', 'privatecontent-free') : esc_html__('minute', 'privatecontent-free'); break;
- case'second': $txt = ($res > 1) ? esc_html__('seconds', 'privatecontent-free') : esc_html__('second', 'privatecontent-free'); break;
+ case 'year' : $txt = ($res > 1) ? esc_html__('years', 'pc_ml') : esc_html__('year', 'pc_ml'); break;
+ case 'month': $txt = ($res > 1) ? esc_html__('months', 'pc_ml') : esc_html__('month', 'pc_ml'); break;
+ case 'day' : $txt = ($res > 1) ? esc_html__('days', 'pc_ml') : esc_html__('day', 'pc_ml'); break;
+ case 'hour' : $txt = ($res > 1) ? esc_html__('hours', 'pc_ml') : esc_html__('hour', 'pc_ml'); break;
+ case'minute': $txt = ($res > 1) ? esc_html__('minutes', 'pc_ml') : esc_html__('minute', 'pc_ml'); break;
+ case'second': $txt = ($res > 1) ? esc_html__('seconds', 'pc_ml') : esc_html__('second', 'pc_ml'); break;
}
return $res. ' ' .$txt;
}
@@ -546,16 +546,6 @@
}
$rpt = array('post','page');
-
- /* NFPCF */
- $cpt = get_option('pg_extend_cpt');
- if(is_array($cpt)) {
- foreach($cpt as $pt) {
- if(is_admin() || post_type_exists($pt)) { // frontend check - be sure CPT are registered
- $rpt[] = $pt;
- }
- }
- }
// PC-FILTER - allow manual CPT integration - passes already affected CPT slugs array
$rpt = apply_filters('pvtcont_affected_pt', $rpt);
@@ -574,16 +564,6 @@
$tax = array('category');
- /* NFPCF */
- $cts = get_option('pg_extend_ct');
- if(is_array($cts)) {
- foreach($cts as $ct) {
- if(is_admin() || taxonomy_exists($ct)) {
- $tax[] = $ct;
- }
- }
- }
-
// PC-FILTER - allow manual taxonomies integration - passes already affected taxonomies slug array
$tax = apply_filters('pvtcont_affected_tax', $tax);
@@ -648,14 +628,14 @@
// pvtContent cats
$opts['pc_cats'] = array(
- 'name' => esc_html__('User Categories', 'privatecontent-free'),
+ 'name' => esc_html__('User Categories', 'pc_ml'),
'opts' => array()
);
if($bulk_opts) {
$opts['pc_cats']['opts'] = array(
- 'all' => esc_html__('Any logged user', 'privatecontent-free'),
- 'unlogged' => esc_html__('Unlogged Users', 'privatecontent-free'),
+ 'all' => esc_html__('Any logged user', 'pc_ml'),
+ 'unlogged' => esc_html__('Unlogged Users', 'pc_ml'),
);
}
@@ -761,7 +741,7 @@
return $form_code;
}
- return '<div class="pc_aligned_form pc_falign_'. $align .'">'. $form_code .'</div>';
+ return '<div class="pc_aligned_form pc_falign_'. esc_attr($align) .'">'. $form_code .'</div>';
}
@@ -816,41 +796,41 @@
if($curr_pag < 2) {
$code .= '
- <span class="tablenav-pages-navspan button disabled" title="'. esc_attr__('First page', 'privatecontent-free') .'">«</span>
- <span class="tablenav-pages-navspan button disabled" title="'. esc_attr__('Previous page', 'privatecontent-free') .'">‹</span>';
+ <span class="tablenav-pages-navspan button disabled" title="'. esc_attr__('First page', 'pc_ml') .'">«</span>
+ <span class="tablenav-pages-navspan button disabled" title="'. esc_attr__('Previous page', 'pc_ml') .'">‹</span>';
}
else {
$code .= '
- <a class="first-page button" href="'. esc_attr($first_url) .'" title="'. esc_attr__('First page', 'privatecontent-free') .'">
- <span class="screen-reader-text">'. esc_html__('First page', 'privatecontent-free') .'</span>
+ <a class="first-page button" href="'. esc_attr($first_url) .'" title="'. esc_attr__('First page', 'pc_ml') .'">
+ <span class="screen-reader-text">'. esc_html__('First page', 'pc_ml') .'</span>
<span aria-hidden="true">«</span>
</a>
- <a class="prev-page button" href="'. esc_attr($prev_url) .'" title="'. esc_attr__('Previous page', 'privatecontent-free') .'">
- <span class="screen-reader-text">'. esc_html__('Previous page', 'privatecontent-free') .'</span>
+ <a class="prev-page button" href="'. esc_attr($prev_url) .'" title="'. esc_attr__('Previous page', 'pc_ml') .'">
+ <span class="screen-reader-text">'. esc_html__('Previous page', 'pc_ml') .'</span>
<span aria-hidden="true">‹</span>
</a>';
}
$code .= '
<span class="paging-input">
- <label class="screen-reader-text">'. esc_html__('Current Page', 'privatecontent-free') .'</label>
+ <label class="screen-reader-text">'. esc_html__('Current Page', 'pc_ml') .'</label>
<input class="current-page pc_ulist_pagenum_input" type="text" name="pagenum" value="'. $curr_pag .'" size="1" data-tot-pag="'. $tot_pages .'" autocomplete="off" />
- <span class="tablenav-paging-text"> '. esc_html__('of', 'privatecontent-free') .' <span class="total-pages">'. $tot_pages .'</span></span>
+ <span class="tablenav-paging-text"> '. esc_html__('of', 'pc_ml') .' <span class="total-pages">'. $tot_pages .'</span></span>
</span>';
if($curr_pag == $tot_pages) {
$code .= '
- <span class="tablenav-pages-navspan button disabled" title="'. esc_attr__('Next page', 'privatecontent-free') .'">›</span>
- <span class="tablenav-pages-navspan button disabled" title="'. esc_attr__('Last page', 'privatecontent-free') .'">»</span>';
+ <span class="tablenav-pages-navspan button disabled" title="'. esc_attr__('Next page', 'pc_ml') .'">›</span>
+ <span class="tablenav-pages-navspan button disabled" title="'. esc_attr__('Last page', 'pc_ml') .'">»</span>';
}
else {
$code .= '
- <a class="next-page button" href="'. esc_attr($next_url) .'" title="'. esc_attr__('Next page', 'privatecontent-free') .'">
- <span class="screen-reader-text">'. esc_html__('Next page', 'privatecontent-free') .'></span>
+ <a class="next-page button" href="'. esc_attr($next_url) .'" title="'. esc_attr__('Next page', 'pc_ml') .'">
+ <span class="screen-reader-text">'. esc_html__('Next page', 'pc_ml') .'></span>
<span aria-hidden="true">›</span>
</a>
- <a class="last-page button" href="'. esc_attr($last_url) .'" title="'. esc_attr__('Last page', 'privatecontent-free') .'">
- <span class="screen-reader-text">'. esc_html__('Last page', 'privatecontent-free') .'></span>
+ <a class="last-page button" href="'. esc_attr($last_url) .'" title="'. esc_attr__('Last page', 'pc_ml') .'">
+ <span class="screen-reader-text">'. esc_html__('Last page', 'pc_ml') .'></span>
<span aria-hidden="true">»</span>
</a>';
}
@@ -868,40 +848,40 @@
public static function default_ulist_cols() {
return array(
'name' => array(
- 'name' => (get_option('pg_use_first_last_name')) ? esc_html__('First name', 'privatecontent-free') : esc_html__('Name', 'privatecontent-free'),
+ 'name' => (get_option('pg_use_first_last_name')) ? esc_html__('First name', 'pc_ml') : esc_html__('Name', 'pc_ml'),
'sortable' => true,
'is_date' => false,
),
'surname' => array(
- 'name' => (get_option('pg_use_first_last_name')) ? esc_html__('Last name', 'privatecontent-free') : esc_html__('Surname', 'privatecontent-free'),
+ 'name' => (get_option('pg_use_first_last_name')) ? esc_html__('Last name', 'pc_ml') : esc_html__('Surname', 'pc_ml'),
'sortable' => true,
'is_date' => false,
),
'email' => array(
- 'name' => esc_html__('E-mail', 'privatecontent-free'),
+ 'name' => esc_html__('E-mail', 'pc_ml'),
'sortable' => true,
'is_date' => false,
),
'tel' => array(
- 'name' => esc_html__('Telephone', 'privatecontent-free'),
+ 'name' => esc_html__('Telephone', 'pc_ml'),
'sortable' => true,
'width' => '120px',
'is_date' => false,
),
'categories' => array(
- 'name' => esc_html__('Categories', 'privatecontent-free'),
+ 'name' => esc_html__('Categories', 'pc_ml'),
'sortable' => false,
'is_date' => false,
),
'insert_date' => array(
- 'name' => esc_html__('Registered', 'privatecontent-free'),
+ 'name' => esc_html__('Registered', 'pc_ml'),
'sortable' => true,
'width' => '152px',
'is_date' => true,
),
'last_access' => array(
- 'name' => esc_html__('Last access', 'privatecontent-free'),
+ 'name' => esc_html__('Last access', 'pc_ml'),
'sortable' => true,
'width' => '110px',
'is_date' => true,
@@ -1066,7 +1046,7 @@
// given a settings option name, echoes (or returns it) getting the default value from defined settings
- public static function get_opt_for_css($opt_name, $echo = true, $recursive_array = false) {
+ public static function get_opt_for_css($opt_name, $echo = true, $recursive_array = false, $recursive_count = 0) {
if(isset($GLOBALS['pvtcont_get_opt_for_css_cache']) && isset($GLOBALS['pvtcont_get_opt_for_css_cache'][$opt_name])) {
$val = $GLOBALS['pvtcont_get_opt_for_css_cache'][$opt_name];
}
@@ -1088,13 +1068,14 @@
// search
$result = false;
- if(isset($array[$opt_name])) {
- $result = $array[$opt_name];
+ if(isset($array[$opt_name]) || $recursive_count > 5) {
+ $result = (isset($array[$opt_name])) ? $array[$opt_name] : '';
}
else {
foreach($array as $key => $val) {
if(is_array($val) && !isset($val['type'])) { // skip fields definition arrays
- $result = self::get_opt_for_css($opt_name, $echo, $val);
+ $rcc = $recursive_count++;
+ $result = self::get_opt_for_css($opt_name, $echo, $val, $rcc);
if($result) {
break;
@@ -1232,42 +1213,42 @@
'pcud' => array(
'name' => 'User Data',
'descr' => 'User Data add-on boosts PrivateContent plugin allowing you to create and use unlimited fields to record more informations from your users',
- 'link' => 'https://charon.lcweb.it/bff73641?ref=pc_addons_adv',
+ 'link' => 'https://charon.lcweb.it/bff73641?utm_source=pc_addons_adv',
'path' => 'private-content-user-data/pc_user_data.php'
),
'pcfm' => array(
'name' => 'Files Manager',
'descr' => 'Unlimited upload fields and restricted files for PrivateContent users. Google Analytics tracking and six different file view layouts to use',
- 'link' => 'https://charon.lcweb.it/46223884?ref=pc_addons_adv',
+ 'link' => 'https://charon.lcweb.it/46223884?utm_source=pc_addons_adv',
'path' => 'private-content-files-manager/pc_files_manager.php'
),
'pcpp' => array(
'name' => 'Premium Plans',
'descr' => 'Turn PrivateContent into a true premium membership platform. The add-on takes advantage of WooCommerce systems to handle payments and set subscription time limits',
- 'link' => 'https://charon.lcweb.it/7937f589?ref=pc_addons_adv',
+ 'link' => 'https://charon.lcweb.it/7937f589?utm_source=pc_addons_adv',
'path' => 'private-content-premium-plans/pc_premium_plans.php'
),
'pcma' => array(
'name' => 'Mail Actions',
'descr' => 'Manages PrivateContent e-mail operations: e-mail address validation, password retrieval, MailPoet + Mailchimp sync and much more. Finally a true e-mail marketing campaign engine to run your newsletters!',
- 'link' => 'https://charon.lcweb.it/b1f9f472?ref=pc_addons_adv',
+ 'link' => 'https://charon.lcweb.it/b1f9f472?utm_source=pc_addons_adv',
'path' => 'private-content-mail-actions/pc_mail_actions.php'
),
'pczw' => array(
'name' => 'Data Bridge',
'descr' => 'Connect PrivateContent with external systems: manage or send users data through webhooks. Enjoy the native Zapier integration or use user actions to update their data!',
- 'link' => 'https://charon.lcweb.it/e0f2f688?ref=pc_addons_adv',
+ 'link' => 'https://charon.lcweb.it/e0f2f688?utm_source=pc_addons_adv',
'path' => 'private-content-data-bridge/pc-data-bridge.php'
),
'pcua' => array(
'name' => 'User Activities',
'descr' => 'A powerful and easy-to-use solution to track PrivateContent users interaction on your website. Includes also a scheduled e-mail report and PDF export engine!',
- 'link' => 'https://charon.lcweb.it/f2ce52ae?ref=pc_addons_adv',
+ 'link' => 'https://charon.lcweb.it/f2ce52ae?utm_source=pc_addons_adv',
'path' => 'private-content-user-activities/pc_user_activities.php'
),
);
@@ -1329,13 +1310,13 @@
'form_wrap' => $form_wrap,
'labels' => array(
- '🔍 '. esc_html__('Search icons ..', 'privatecontent-free'),
- esc_html__('All categories', 'privatecontent-free'),
- esc_html__('Solid', 'privatecontent-free'),
- esc_html__('Regular', 'privatecontent-free'),
- esc_html__('Brands', 'privatecontent-free'),
- esc_html__('no icon', 'privatecontent-free'),
- esc_html__('.. no icons found ..', 'privatecontent-free'),
+ '🔍 '. esc_html__('Search icons ..', 'pc_ml'),
+ esc_html__('All categories', 'pc_ml'),
+ esc_html__('Solid', 'pc_ml'),
+ esc_html__('Regular', 'pc_ml'),
+ esc_html__('Brands', 'pc_ml'),
+ esc_html__('no icon', 'pc_ml'),
+ esc_html__('.. no icons found ..', 'pc_ml'),
)
)) .'
</div>';
@@ -1366,7 +1347,7 @@
}
- tb_show("'. esc_html__('Icons picker', 'privatecontent-free') .'", `#TB_inline?inlineId='. esc_js($prefix) .'_icons_list`);
+ tb_show("'. esc_html__('Icons picker', 'pc_ml') .'", `#TB_inline?inlineId='. esc_js($prefix) .'_icons_list`);
setTimeout(function() {
$(`#TB_window`).addClass(`'. esc_js($prefix) .'_icon_picker_lb`)
$(`input[name="lcfah-search"]`).val(``);
@@ -1408,21 +1389,24 @@
if(!isset($GLOBALS['lcwp_safe_inline_scripts'])) {
$GLOBALS['lcwp_safe_inline_scripts'] = array();
}
- if(in_array($unique_id, $GLOBALS['lcwp_safe_inline_scripts']) && !wp_doing_ajax()) {
+ if(in_array($unique_id, $GLOBALS['lcwp_safe_inline_scripts'])) {
return '';
}
$GLOBALS['lcwp_safe_inline_scripts'][] = $unique_id;
-
// minify
$code = trim(preg_replace('/s+/', ' ', str_replace(["r","n","t","v"], '', $code)));
-
- if(wp_doing_ajax()) {
+ if(
+ wp_doing_ajax() ||
+ (defined('REST_REQUEST') && REST_REQUEST) ||
+ did_action('wp_footer') || doing_action('wp_footer') ||
+ did_action('wp_print_footer_scripts') || doing_action('wp_print_footer_scripts')
+ ) {
return '<script type="text/javascript">'. $code .'</script>';
}
- add_action('wp_footer', function() use ($code) {
+ add_action('wp_print_footer_scripts', function() use ($code) {
if(function_exists('wp_print_inline_script_tag')){
wp_print_inline_script_tag($code);
} else {
--- a/privatecontent-free/classes/pc_wp_user_caps_static.php
+++ b/privatecontent-free/classes/pc_wp_user_caps_static.php
@@ -432,7 +432,7 @@
// autocomplete search + user picker module to pick single users able to do things
public static function autocomplete_users_search_n_pick($field_name, $users = array(), $custom_placeholder = false) {
- $placeh = ($custom_placeholder) ? $custom_placeholder : '🔍'. esc_attr__(' search users (username, names, e-mail)', 'privatecontent-free');
+ $placeh = ($custom_placeholder) ? $custom_placeholder : '🔍'. esc_attr__(' search users (username, names, e-mail)', 'pc_ml');
?>
<div class="pc_ausnp_wrap">
<input type="text" name="pc_ausnp" autocomplete="off" maxlength="255" placeholder="<?php echo esc_attr($placeh) ?>" />
@@ -456,7 +456,7 @@
) {
echo '
<li data-user-id="'. absint($uid) .'">
- <span class="dashicons dashicons-no-alt" title="'. esc_attr__('remove user from selection', 'privatecontent-free') .'"></span>
+ <span class="dashicons dashicons-no-alt" title="'. esc_attr__('remove user from selection', 'pc_ml') .'"></span>
<input type="hidden" name="'. esc_attr($field_name) .'[]" value="'. absint($uid) .'" />
'. esc_html($user_data->user_login) .'
</li>';
@@ -510,7 +510,7 @@
response([{
id : ``,
value : ``,
- label : "'. esc_attr__('Error retrieving users', 'privatecontent-free') .'"
+ label : "'. esc_attr__('Error retrieving users', 'pc_ml') .'"
}]);
}
})
@@ -520,7 +520,7 @@
response([{
id : ``,
value : ``,
- label : "'. esc_attr__('Error retrieving users', 'privatecontent-free') .'"
+ label : "'. esc_attr__('Error retrieving users', 'pc_ml') .'"
}]);
});
},
@@ -529,13 +529,13 @@
// check already selected users
if($chosen_ul.find(`[data-user-id="`+ ui.item.id +`"]`).length) {
- lc_wp_popup_message(`error`, "'. esc_attr__('User already selected', 'privatecontent-free') .'");
+ lc_wp_popup_message(`error`, "'. esc_attr__('User already selected', 'pc_ml') .'");
}
else {
if(parseInt(ui.item.id, 10)) {
$chosen_ul.append(`
<li data-user-id="${ ui.item.id }">
- <span class="dashicons dashicons-no-alt" title="'. esc_attr__('remove user from selection', 'privatecontent-free') .'"></span>
+ <span class="dashicons dashicons-no-alt" title="'. esc_attr__('remove user from selection', 'pc_ml') .'"></span>
<input type="hidden" name="'. esc_attr($field_name) .'[]" value="${ ui.item.id }" />
${ ui.item.label }
</li>`);
@@ -558,7 +558,7 @@
// chosen user removal
$(document).on(`click`, `.pc_ucat_mbu_list li span`, function() {
- if(typeof(window.pc_ucat_reset_cust_fields) != `undefined` || confirm("'. esc_attr__('Remove selected user?', 'privatecontent-free') .'")) {
+ if(typeof(window.pc_ucat_reset_cust_fields) != `undefined` || confirm("'. esc_attr__('Remove selected user?', 'pc_ml') .'")) {
$(this).parents(`li`).remove();
}
});
--- a/privatecontent-free/classes/restrictions_wizard.php
+++ b/privatecontent-free/classes/restrictions_wizard.php
@@ -576,7 +576,7 @@
if(!is_object($term_data)) :
?>
<div class="form-field pc_tax_restr_wizard">
- <h4>PrivateContent - <?php esc_html_e("Restrictions Wizard", 'privatecontent-free') ?></h4>
+ <h4>PrivateContent - <?php esc_html_e("Restrictions Wizard", 'pc_ml') ?></h4>
<?php echo pc_static::wp_kses_ext($this->wizard_code('tax', $term_id)) ?>
</div>
@@ -590,7 +590,7 @@
<td class="pc_tax_restr_wizard_td">
<div class="form-field pc_tax_restr_wizard">
- <h4>PrivateContent - <?php esc_html_e("Restrictions Wizard", 'privatecontent-free') ?></h4>
+ <h4>PrivateContent - <?php esc_html_e("Restrictions Wizard", 'pc_ml') ?></h4>
<?php echo pc_static::wp_kses_ext($this->wizard_code('tax', $term_id)) ?>
</div>
</td>
@@ -624,7 +624,7 @@
// add a meta box for affected post types and be sure excerpt is there for Contents hiding
foreach(pc_static::affected_pt() as $type){
- add_meta_box('pc_redirect_meta', "PvtContent - ". esc_html__(" Restrictions Wizard", 'privatecontent-free'), array($this, 'posts_form_implementation'), $type, 'side', 'default');
+ add_meta_box('pc_redirect_meta', "PvtContent - ". esc_html__(" Restrictions Wizard", 'pc_ml'), array($this, 'posts_form_implementation'), $type, 'side', 'default');
add_post_type_support($type, 'excerpt');
add_filter('manage_edit-'.$type.'_columns', array($this, 'postNterms_list_pc_col_head'));
@@ -679,20 +679,20 @@
$code .= '
<div class="pc_restr_wizard_block pc_rw_redir">
<legend>
- <i class="fas fa-lock" ></i><strong>'. esc_html__('Redirect', 'privatecontent-free') .'</strong>
+ <i class="fas fa-lock" ></i><strong>'. esc_html__('Redirect', 'pc_ml') .'</strong>
'. $this->inherited_restr_helper('redirect', $subj_type, $subj_id) .'
</legend>'.$tax_tb.'
<fieldset>
- <label>'. esc_html__('Who can access this page?', 'privatecontent-free') .'</label>
- <select name="pc_redirect_allow[]" multiple="multiple" class="pc_restr_wiz_lcslt" data-placeholder="'. esc_attr__('Leave empty to ignore', 'privatecontent-free') .'" autocomplete="off">
+ <label>'. esc_html__('Who can access this page?', 'pc_ml') .'</label>
+ <select name="pc_redirect_allow[]" multiple="multiple" class="pc_restr_wiz_lcslt" data-placeholder="'. esc_attr__('Leave empty to ignore', 'pc_ml') .'" autocomplete="off">
'. pc_static::user_cat_dd_opts($data['redirect_allow']) .'
</select>
<input type="hidden" name="pc_redirect_allow_check" value="'. esc_attr(implode(',', $data['redirect_allow'])) .'" />
</fieldset>
<fieldset class="'. $redirect_block_vis .'">
<hr/>
- <label>'. esc_html__('Among them - want to block someone?', 'privatecontent-free') .'</label>
- <select name="pc_redirect_block[]" multiple="multiple" class="pc_restr_wiz_lcslt" data-placeholder="'. esc_attr__('Leave empty to ignore', 'privatecontent-free') .'" autocomplete="off">
+ <label>'. esc_html__('Among them - want to block someone?', 'pc_ml') .'</label>
+ <select name="pc_redirect_block[]" multiple="multiple" class="pc_restr_wiz_lcslt" data-placeholder="'. esc_attr__('Leave empty to ignore', 'pc_ml') .'" autocomplete="off">
'. pc_static::user_cat_dd_opts($data['redirect_block'], false) .'
</select>
<input type="hidden" name="pc_redirect_block_check" value="'. esc_attr(implode(',', $data['redirect_block'])) .'" />
@@ -705,19 +705,19 @@
<hr/>
<div class="pc_restr_wizard_block pc_rw_cont_h">
<legend>
- <i class="fas fa-eye-slash" ></i><strong>'. esc_html__('Contents Hiding', 'privatecontent-free') .'</strong>
+ <i class="fas fa-eye-slash" ></i><strong>'. esc_html__('Contents Hiding', 'pc_ml') .'</strong>
'. $this->inherited_restr_helper('cont_hide', $subj_type, $subj_id) .'
</legend>'.$tax_tb.'
<fieldset>
- <label>'. esc_html__('Who can see contents?', 'privatecontent-free') .'</label>
- <select name="pc_cont_hide_allow[]" multiple="multiple" class="pc_restr_wiz_lcslt" data-placeholder="'. esc_attr__('Leave empty to ignore', 'privatecontent-free') .'" autocomplete="off">
+ <label>'. esc_html__('Who can see contents?', 'pc_ml') .'</label>
+ <select name="pc_cont_hide_allow[]" multiple="multiple" class="pc_restr_wiz_lcslt" data-placeholder="'. esc_attr__('Leave empty to ignore', 'pc_ml') .'" autocomplete="off">
'. pc_static::user_cat_dd_opts($data['cont_hide_allow'], true, true, array('unlogged')) .'
</select>
</fieldset>
<fieldset class="'. $cont_hide_block_vis .'">
<hr/>
- <label>'. esc_html__('Among them - want to block someone?', 'privatecontent-free') .'</label>
- <select name="pc_cont_hide_block[]" multiple="multiple" class="pc_restr_wiz_lcslt" data-placeholder="'. esc_attr__('Leave empty to ignore', 'privatecontent-free') .'" autocomplete="off">
+ <label>'. esc_html__('Among them - want to block someone?', 'pc_ml') .'</label>
+ <select name="pc_cont_hide_block[]" multiple="multiple" class="pc_restr_wiz_lcslt" data-placeholder="'. esc_attr__('Leave empty to ignore', 'pc_ml') .'" autocomplete="off">
'. pc_static::user_cat_dd_opts($data['cont_hide_block'], false) .'
</select>
</fieldset>
@@ -730,19 +730,19 @@
<hr/>
<div class="pc_restr_wizard_block pc_rw_comm_h">
<legend>
- <i class="fas fa-comment-slash" ></i><strong>'. esc_html__('Comments', 'privatecontent-free') .'</strong>
+ <i class="fas fa-comment-slash" ></i><strong>'. esc_html__('Comments', 'pc_ml') .'</strong>
'. $this->inherited_restr_helper('comm_hide', $subj_type, $subj_id) .'
</legend>'.$tax_tb.'
<fieldset>
- <label>'. esc_html__('Who can see comments?', 'privatecontent-free') .'</label>
- <select name="pc_comm_hide_allow[]" multiple="multiple" class="pc_restr_wiz_lcslt" data-placeholder="'. esc_attr__('Leave empty to ignore', 'privatecontent-free') .'" autocomplete="off">
+ <label>'. esc_html__('Who can see comments?', 'pc_ml') .'</label>
+ <select name="pc_comm_hide_allow[]" multiple="multiple" class="pc_restr_wiz_lcslt" data-placeholder="'. esc_attr__('Leave empty to ignore', 'pc_ml') .'" autocomplete="off">
'. pc_static::user_cat_dd_opts($data['comm_hide_allow'], true, true, array('unlogged')) .'
</select>
</fieldset>
<fieldset class="'. $comm_hide_block_vis .'">
<hr/>
- <label>'. esc_html__('Among them - want to block someone?', 'privatecontent-free') .'</label>
- <select name="pc_comm_hide_block[]" multiple="multiple" class="pc_restr_wiz_lcslt" data-placeholder="'. esc_attr__('Leave empty to ignore', 'privatecontent-free') .'" autocomplete="off">
+ <label>'. esc_html__('Among them - want to block someone?', 'pc_ml') .'</label>
+ <select name="pc_comm_hide_block[]" multiple="multiple" class="pc_restr_wiz_lcslt" data-placeholder="'. esc_attr__('Leave empty to ignore', 'pc_ml') .'" autocomplete="off">
'. pc_static::user_cat_dd_opts($data['comm_hide_block'], false) .'
</select>
</fieldset>
@@ -753,18 +753,18 @@
// LIGHTBOX ON OPENING
if(!empty($lb_instances)) {
$lb_instances = array(
- 'inherit' => '('. esc_html__('inherit', 'privatecontent-free') .')',
- 'none' => esc_html__('No', 'privatecontent-free')
+ 'inherit' => '('. esc_html__('inherit', 'pc_ml') .')',
+ 'none' => esc_html__('No', 'pc_ml')
) + $lb_instances;
$code .= '
<hr/>
<div class="pc_restr_wizard_block pc_rw_lb">
<legend>
- <i class="far fa-window-restore" ></i><strong>'. esc_html__("Lightbox on page's opening", 'privatecontent-free') .'</strong>
+ <i class="far fa-window-restore" ></i><strong>'. esc_html__("Lightbox on page's opening", 'pc_ml') .'</strong>
</legend>'.$tax_tb.'
<fieldset>
- <label>'. esc_html__('Displayed for unlogged users', 'privatecontent-free') .'</label>
+ <label>'. esc_html__('Displayed for unlogged users', 'pc_ml') .'</label>
'. $this->inherited_restr_helper('lb_on_open', $subj_type, $subj_id) .'
<select name="pc_lb_on_open" autocomplete="off">';
@@ -894,7 +894,7 @@
}
if($restr == 'no') {
- $txt = esc_html__('No lightbox', 'privatecontent-free');
+ $txt = esc_html__('No lightbox', 'pc_ml');
}
else {
$lb_instances = pc_static::get_lb_instances();
@@ -909,7 +909,7 @@
$helper .= '
<dl>
- <dt>'. $this->restr_subj_to_link($subj) .'</dt><dd>'. esc_html__('uses', 'privatecontent-free') .' <em>'. $txt .'</em></dd>
+ <dt>'. $this->restr_subj_to_link($subj) .'</dt><dd>'. esc_html__('uses', 'pc_ml') .' <em>'. $txt .'</em></dd>
</dl>';
}
}
@@ -924,11 +924,11 @@
continue;
}
- $txt = ($restr == 'no') ? esc_html__('No', 'privatecontent-free') : esc_html__('Yes', 'privatecontent-free');
+ $txt = ($restr == 'no') ? esc_html__('No', 'pc_ml') : esc_html__('Yes', 'pc_ml');
$helper .= '
<dl>
- <dt>'. $this->restr_subj_to_link($subj) .'</dt><dd>'. esc_html__('uses', 'privatecontent-free') .' <em>'. $txt .'</em></dd>
+ <dt>'. $this->restr_subj_to_link($subj) .'</dt><dd>'. esc_html__('uses', 'pc_ml') .' <em>'. $txt .'</em></dd>
</dl>';
}
}
@@ -940,11 +940,11 @@
if(($suppress_self && $subj == 'self') || empty($restr)) {continue;}
// check also blocks
- $blocks_txt = (isset($restr['block']) && !empty($restr['block'])) ? ' '. esc_html__('and blocks', 'privatecontent-free') .' <em class="pc_rwh_block">'. $this->restr_arr_to_string($restr['block']) .'</em>' : '';
+ $blocks_txt = (isset($restr['block']) && !empty($restr['block'])) ? ' '. esc_html__('and blocks', 'pc_ml') .' <em class="pc_rwh_block">'. $this->restr_arr_to_string($restr['block']) .'</em>' : '';
$helper .= '
<dl>
- <dt>'. $this->restr_subj_to_link($subj) .'</dt><dd>'. esc_html__('allows', 'privatecontent-free') .' <em class="pc_rwh_allow">'. $this->restr_arr_to_string($restr['allow']) .'</em>' . $blocks_txt .'</dd>
+ <dt>'. $this->restr_subj_to_link($subj) .'</dt><dd>'. esc_html__('allows', 'pc_ml') .' <em class="pc_rwh_allow">'. $this->restr_arr_to_string($restr['allow']) .'</em>' . $blocks_txt .'</dd>
</dl>';
}
}
@@ -967,7 +967,7 @@
// special case - self restrictions
if($subj == 'self') {
- return '<a href="#"><i class="far fa-arrow-alt-circle-right"></i>' . esc_html__('self restriction', 'privatecontent-free') .'</a>';
+ return '<a href="#"><i class="far fa-arrow-alt-circle-right"></i>' . esc_html__('self restriction', 'pc_ml') .'</a>';
}
// retrieve subj and ID
@@ -1035,7 +1035,7 @@
$columns_local = array();
if(!isset($columns_local['pvtcontent'])) {
- $columns_local['pvtcontent'] = '<span class="pc_help_cursor" title="'. esc_attr__('restrictions summary', 'privatecontent-free') .'">PrivateContent</span>';
+ $columns_local['pvtcontent'] = '<span class="pc_help_cursor" title="'. esc_attr__('restrictions summary', 'pc_ml') .'">PrivateContent</span>';
}
return array_merge($columns, $columns_local);
}
@@ -1074,23 +1074,23 @@
$nr_class = 'pc_rw_no_restr';
switch($restr) {
case 'cont_hide' :
- $icon = '<i class="fas fa-eye-slash '.$nr_class.'" title="'. esc_attr__('no contents restriction', 'privatecontent-free') .'"></i>';
+ $icon = '<i class="fas fa-eye-slash '.$nr_class.'" title="'. esc_attr__('no contents restriction', 'pc_ml') .'"></i>';
break;
case 'comm_hide' :
- $icon = '<i class="fas fa-comment-slash '.$nr_class.'" title="'. esc_attr__('no comments hidin