Version 1.0.29

This commit is contained in:
ultimatemember
2015-01-28 17:16:04 +02:00
parent 31dc7962bf
commit 78833fa2e3
24 changed files with 290 additions and 41 deletions
+1
View File
@@ -155,6 +155,7 @@ body.um-admin-modal-open {
.um-admin-metabox input[type=text].small {width: 50px}
.um-admin-metabox textarea {min-height: 100px;height: 100px}
.um-admin-metabox textarea.tall {min-height: 200px;height: 200px}
.wp-picker-container input.wp-color-picker[type="text"] {
width: 68px !important;
+17 -5
View File
@@ -274,23 +274,25 @@ class UM_Admin_Metabox {
function add_metabox_form() {
add_meta_box('um-admin-form-mode', __('Select Form Type'), array(&$this, 'load_metabox_form'), 'um_form', 'normal', 'default');
add_meta_box('um-admin-form-builder', __('Form Builder'), array(&$this, 'load_metabox_form'), 'um_form', 'normal', 'default');
add_meta_box('um-admin-form-shortcode', __('Shortcode'), array(&$this, 'load_metabox_form'), 'um_form', 'side', 'default');
add_meta_box('um-admin-form-register_customize', __('Customize this form'), array(&$this, 'load_metabox_form'), 'um_form', 'side', 'default');
add_meta_box('um-admin-form-register_css', __('Custom CSS'), array(&$this, 'load_metabox_form'), 'um_form', 'side', 'default');
do_action('um_admin_custom_register_metaboxes');
add_meta_box('um-admin-form-profile_customize', __('Customize this form'), array(&$this, 'load_metabox_form'), 'um_form', 'side', 'default');
add_meta_box('um-admin-form-profile_settings', __('User Meta'), array(&$this, 'load_metabox_form'), 'um_form', 'side', 'default');
add_meta_box('um-admin-form-profile_css', __('Custom CSS'), array(&$this, 'load_metabox_form'), 'um_form', 'side', 'default');
do_action('um_admin_custom_profile_metaboxes');
add_meta_box('um-admin-form-login_customize', __('Customize this form'), array(&$this, 'load_metabox_form'), 'um_form', 'side', 'default');
add_meta_box('um-admin-form-login_settings', __('Options'), array(&$this, 'load_metabox_form'), 'um_form', 'side', 'default');
add_meta_box('um-admin-form-login_css', __('Custom CSS'), array(&$this, 'load_metabox_form'), 'um_form', 'side', 'default');
do_action('um_admin_custom_login_metaboxes');
add_meta_box('um-admin-form-profile_settings', __('User Meta'), array(&$this, 'load_metabox_form'), 'um_form', 'side', 'default');
add_meta_box('um-admin-form-login_settings', __('Options'), array(&$this, 'load_metabox_form'), 'um_form', 'side', 'default');
}
@@ -657,6 +659,16 @@ class UM_Admin_Metabox {
<?php
break;
case '_divider_text':
?>
<p><label for="_divider_text">Optional Text <?php $this->tooltip( __('Optional text to include with the divider','ultimatemember') ); ?></label>
<input type="text" name="_divider_text" id="_divider_text" value="<?php echo ( $this->edit_mode_value ) ? $this->edit_mode_value : ''; ?>" />
</p>
<?php
break;
case '_padding':
?>
+8
View File
@@ -0,0 +1,8 @@
<div class="um-admin-metabox">
<p>
<label><?php _e('Custom CSS','ultimatemember'); ?> <?php $this->tooltip( __('Enter custom css that will be applied to this form only','ultimatemember'), 'e'); ?></label>
<textarea name="_um_login_custom_css" id="_um_login_custom_css" class="tall"><?php echo $ultimatemember->query->get_meta_value('_um_login_custom_css', null, 'na' ); ?></textarea>
</p><div class="um-admin-clear"></div>
</div>
+8
View File
@@ -0,0 +1,8 @@
<div class="um-admin-metabox">
<p>
<label><?php _e('Custom CSS','ultimatemember'); ?> <?php $this->tooltip( __('Enter custom css that will be applied to this form only','ultimatemember'), 'e'); ?></label>
<textarea name="_um_profile_custom_css" id="_um_profile_custom_css" class="tall"><?php echo $ultimatemember->query->get_meta_value('_um_profile_custom_css', null, 'na' ); ?></textarea>
</p><div class="um-admin-clear"></div>
</div>
@@ -39,6 +39,10 @@
<input type="text" value="<?php echo $ultimatemember->query->get_meta_value('_um_profile_max_width', null, um_get_option('profile_max_width') ); ?>" name="_um_profile_max_width" id="_um_profile_max_width" />
</p>
<p><label for="_um_profile_area_max_width"><?php _e('Profile Area Max. Width (px)','ultimatemember'); ?> <?php $this->tooltip('The maximum width of the profile area inside profile (below profile header)', 'e'); ?></label>
<input type="text" value="<?php echo $ultimatemember->query->get_meta_value('_um_profile_area_max_width', null, um_get_option('profile_area_max_width') ); ?>" name="_um_profile_area_max_width" id="_um_profile_area_max_width" />
</p>
<p><label for="_um_profile_align"><?php _e('Alignment','ultimatemember'); ?> <?php $this->tooltip('The shortcode is centered by default unless you specify otherwise here', 'e'); ?></label>
<select name="_um_profile_align" id="_um_profile_align" class="umaf-selectjs" style="width: 100%">
+8
View File
@@ -0,0 +1,8 @@
<div class="um-admin-metabox">
<p>
<label><?php _e('Custom CSS','ultimatemember'); ?> <?php $this->tooltip( __('Enter custom css that will be applied to this form only','ultimatemember'), 'e'); ?></label>
<textarea name="_um_register_custom_css" id="_um_register_custom_css" class="tall"><?php echo $ultimatemember->query->get_meta_value('_um_register_custom_css', null, 'na' ); ?></textarea>
</p><div class="um-admin-clear"></div>
</div>
+20 -2
View File
@@ -312,8 +312,26 @@ p.um-notice.err {
.um-field-divider {
width: 100%;
margin: 0 0 20px 0;
height: 15px;
margin: 0 0 12px 0;
height: 24px;
position: relative;
}
.um-field-divider-text {
position: absolute;
width: 100%;
text-align: center;
bottom: -24px;
left: 0;
font-size: 16px;
padding: 10px 0;
}
.um-field-divider-text span {
background: #fff;
color: #555;
display: inline-block;
padding: 0 15px;
}
.um-field-icon {
+1 -1
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -29,8 +29,8 @@
$redirect = um_get_option('access_redirect');
$redirects[] = trailingslashit( um_get_core_page('login') );
$redirects[] = trailingslashit( um_get_option('access_redirect') );
$redirects[] = um_get_core_page('login');
$redirects[] = um_get_option('access_redirect');
$exclude_uris = um_get_option('access_exclude_uris');
@@ -38,7 +38,7 @@
$redirects = array_merge( $redirects, $exclude_uris );
}
$current_url = trailingslashit( $ultimatemember->permalinks->get_current_url(true) );
$current_url = $ultimatemember->permalinks->get_current_url( get_option('permalink_structure') );
if ( isset( $post->ID ) && in_array( $current_url, $redirects ) ) {
// allow
+1 -1
View File
@@ -51,7 +51,7 @@
return;
$ips = array_map("rtrim", explode("\n", $ips));
$user_ip = $_SERVER['REMOTE_ADDR'];
$user_ip = um_user_ip();
foreach($ips as $ip) {
$ip = str_replace('*','',$ip);
+3 -1
View File
@@ -517,7 +517,9 @@
<?php foreach( $tabs as $id => $tab ) {
$nav_link = $ultimatemember->permalinks->get_current_url(true);
$nav_link = $ultimatemember->permalinks->get_current_url( get_option('permalink_structure') );
$nav_link = remove_query_arg( 'um_action', $nav_link );
$nav_link = remove_query_arg( 'subnav', $nav_link );
$nav_link = add_query_arg('profiletab', $id, $nav_link )
?>
+5 -1
View File
@@ -9,8 +9,10 @@
// Login screen
if ( isset( $pagenow ) && $pagenow == 'wp-login.php' && !is_user_logged_in() && !isset( $_REQUEST['action'] ) ) {
$allowed = um_get_option('wpadmin_login');
$allowed = apply_filters('um_whitelisted_wpadmin_access', $allowed );
if ( !$allowed ) {
$act = um_get_option('wpadmin_login_redirect');
@@ -29,6 +31,8 @@
if ( isset( $pagenow ) && $pagenow == 'wp-login.php' && !is_user_logged_in() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'register' ) {
$allowed = um_get_option('wpadmin_register');
$allowed = apply_filters('um_whitelisted_wpadmin_access', $allowed );
if ( !$allowed ) {
$act = um_get_option('wpadmin_register_redirect');
+1 -1
View File
@@ -398,7 +398,7 @@ class UM_Builtin {
'divider' => array(
'name' => 'Divider',
'col1' => array('_title','_width','_visibility'),
'col1' => array('_title','_width','_divider_text','_visibility'),
'col2' => array('_style','_color'),
'form_only' => true,
'validate' => array(
+25 -2
View File
@@ -3,22 +3,45 @@
class UM_Enqueue {
function __construct() {
add_action('wp_head', array(&$this, 'wp_head'), 999); // high-priority
add_action('wp_enqueue_scripts', array(&$this, 'wp_enqueue_scripts'), 0);
}
/***
*** @Enqueue inline css globally
***/
function wp_head() {
$css = um_get_option('custom_css');
if ( !$css ) return; ?><!-- ULTIMATE MEMBER INLINE CSS BEGIN --><style type="text/css"><?php print $this->minify( $css ); ?></style><!-- ULTIMATE MEMBER INLINE CSS END --><?php
}
/***
*** @Minify css string
***/
function minify( $css ) {
$css = str_replace(array("\r", "\n"), '', $css);
$css = str_replace(' {','{', $css );
$css = str_replace('{ ','{', $css );
$css = str_replace('; ',';', $css );
$css = str_replace(';}','}', $css );
$css = str_replace(': ',':', $css );
return $css;
}
/***
*** @Enqueue scripts and styles
***/
function wp_enqueue_scripts(){
function wp_enqueue_scripts() {
global $ultimatemember;
$exclude = um_get_option('js_css_exclude');
if ( $exclude && is_array( $exclude ) ) {
$c_url = trailingslashit( $ultimatemember->permalinks->get_current_url(true) );
$c_url = $ultimatemember->permalinks->get_current_url( get_option('permalink_structure') );
foreach( $exclude as $match ) {
if ( strstr( $c_url, $match ) )
+14 -2
View File
@@ -697,6 +697,10 @@ class UM_Fields {
$array['borderstyle'] = 'solid';
}
if ( !isset( $array['divider_text'] ) ) {
$array['divider_text'] = '';
}
break;
case 'image':
@@ -1135,7 +1139,11 @@ class UM_Fields {
/* A line divider */
case 'divider':
$output .= '<div class="um-field-divider" style="border-bottom: '.$borderwidth.'px '.$borderstyle.' '.$bordercolor.'"></div>';
$output .= '<div class="um-field-divider" style="border-bottom: '.$borderwidth.'px '.$borderstyle.' '.$bordercolor.'">';
if ( $divider_text ) {
$output .= '<div class="um-field-divider-text"><span>' . $divider_text . '</span></div>';
}
$output .= '</div>';
break;
/* Single Image Upload */
@@ -1857,7 +1865,11 @@ class UM_Fields {
/* A line divider */
case 'divider':
$output .= '<div class="um-field-divider" style="border-bottom: '.$borderwidth.'px '.$borderstyle.' '.$bordercolor.'"></div>';
$output .= '<div class="um-field-divider" style="border-bottom: '.$borderwidth.'px '.$borderstyle.' '.$bordercolor.'">';
if ( $divider_text ) {
$output .= '<div class="um-field-divider-text"><span>' . $divider_text . '</span></div>';
}
$output .= '</div>';
break;
/* Rating */
+22 -1
View File
@@ -1,10 +1,31 @@
<?php
/***
*** @filter to allow whitelisted IP to access the wp-admin login
***/
add_filter('um_whitelisted_wpadmin_access', 'um_whitelisted_wpadmin_access');
function um_whitelisted_wpadmin_access( $allowed ) {
$ips = um_get_option('wpadmin_allow_ips');
if ( !$ips )
return $allowed;
$ips = array_map("rtrim", explode("\n", $ips));
$user_ip = um_user_ip();
if ( in_array( $user_ip, $ips ) )
$allowed = 1;
return $allowed;
}
/***
*** @filter to customize errors
***/
add_filter('login_message', 'um_custom_wp_err_messages');
function um_custom_wp_err_messages( $message) {
function um_custom_wp_err_messages( $message ) {
if ( isset( $_REQUEST['err'] ) && !empty( $_REQUEST['err'] ) ) {
switch( $_REQUEST['err'] ) {
+13 -1
View File
@@ -1,7 +1,19 @@
<?php
/***
*** @Excludes menu items
*** @add dynamic profile headers
***/
add_filter( 'wp_nav_menu_items', 'um_add_custom_message_to_menu', 10, 2 );
function um_add_custom_message_to_menu( $items, $args ) {
global $ultimatemember;
if ( !is_user_logged_in() )
return $items;
$items = $ultimatemember->shortcodes->convert_user_tags( $items );
return $items;
}
/***
*** @conditional menu items
***/
if ( ! is_admin() ) {
+14
View File
@@ -3,7 +3,21 @@
class UM_Mail {
function __construct() {
add_filter('mandrill_nl2br', array(&$this, 'mandrill_nl2br') );
}
/***
*** @mandrill compatibility
***/
function mandrill_nl2br($nl2br, $message) {
// text emails
$nl2br = true;
return $nl2br;
}
/***
+24 -8
View File
@@ -1,5 +1,18 @@
<?php
/***
*** @Get user IP
***/
function um_user_ip() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
return $_SERVER['HTTP_CLIENT_IP'];
} else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
return $_SERVER['REMOTE_ADDR'];
}
/***
*** @If conditions are met return true;
***/
@@ -211,12 +224,12 @@
function um_is_core_uri() {
global $ultimatemember;
$array = $ultimatemember->permalinks->core;
$current_url = trailingslashit( $ultimatemember->permalinks->get_current_url(true) );
$current_url = $ultimatemember->permalinks->get_current_url( get_option('permalink_structure') );
if ( !isset( $array ) || !is_array( $array ) ) return false;
foreach( $array as $k => $id ) {
$page_url = trailingslashit( get_permalink( $id ) );
$page_url = get_permalink( $id );
if ( strstr( $current_url, $page_url ) )
return true;
}
@@ -377,7 +390,9 @@
***/
function um_edit_my_profile_uri() {
global $ultimatemember;
$url = $ultimatemember->permalinks->get_current_url(true);
$url = $ultimatemember->permalinks->get_current_url( get_option('permalink_structure') );
$url = remove_query_arg( 'profiletab', $url );
$url = remove_query_arg( 'subnav', $url );
$url = add_query_arg( 'um_action', 'edit', $url );
return $url;
}
@@ -483,6 +498,7 @@
$user_id = get_current_user_id();
$role = get_user_meta( $user_id, 'role', true );
$permissions = $ultimatemember->query->role_data( $role );
$permissions = apply_filters('um_user_permissions_filter', $permissions, $user_id);
if ( $permissions[ $permission ] == 1 )
return true;
return false;
@@ -514,14 +530,14 @@
case 'edit':
if ( get_current_user_id() == $user_id && um_user('can_edit_profile') ) $return = 1;
if ( !um_user('can_edit_everyone') ) $return = 0;
if ( get_current_user_id() == $user_id && !um_user('can_edit_profile') ) $return = 0;
if ( um_user('can_edit_roles') && !in_array( $ultimatemember->query->get_role_by_userid( $user_id ), um_user('can_edit_roles') ) ) $return = 0;
elseif ( !um_user('can_edit_everyone') ) $return = 0;
elseif ( get_current_user_id() == $user_id && !um_user('can_edit_profile') ) $return = 0;
elseif ( um_user('can_edit_roles') && !in_array( $ultimatemember->query->get_role_by_userid( $user_id ), um_user('can_edit_roles') ) ) $return = 0;
break;
case 'delete':
if ( !um_user('can_delete_everyone') ) $return = 0;
if ( um_user('can_delete_roles') && !in_array( $ultimatemember->query->get_role_by_userid( $user_id ), um_user('can_delete_roles') ) ) $return = 0;
elseif ( um_user('can_delete_roles') && !in_array( $ultimatemember->query->get_role_by_userid( $user_id ), um_user('can_delete_roles') ) ) $return = 0;
break;
}
+44
View File
@@ -113,12 +113,21 @@ class UM_Shortcodes {
*** @Load dynamic css
***/
function dynamic_css( $args=array() ) {
global $ultimatemember;
extract($args);
$global = um_path . 'assets/dynamic_css/dynamic_global.php';
$file = um_path . 'assets/dynamic_css/dynamic_'.$mode.'.php';
include $global;
if ( file_exists( $file ) )
include $file;
if ( isset( $args['custom_css'] ) ) {
$css = $args['custom_css'];
?><!-- ULTIMATE MEMBER FORM INLINE CSS BEGIN --><style type="text/css"><?php print $ultimatemember->styles->minify( $css ); ?></style><!-- ULTIMATE MEMBER FORM INLINE CSS END --><?php
}
}
/***
@@ -195,5 +204,40 @@ class UM_Shortcodes {
$shortcode = '[ultimatemember form_id='.$post_id.']';
return $shortcode;
}
/***
*** @convert user tags in a string
***/
function convert_user_tags( $str ) {
$pattern_array = array(
'{first_name}',
'{last_name}',
'{display_name}'
);
$pattern_array = apply_filters('um_allowed_user_tags_patterns', $pattern_array);
$matches = false;
foreach ( $pattern_array as $pattern )
{
if (preg_match($pattern, $str))
{
$usermeta = str_replace('{','',$pattern);
$usermeta = str_replace('}','',$usermeta);
if ( um_user( $usermeta ) ){
$str = preg_replace('/'.$pattern.'/', um_user($usermeta) , $str );
}
}
}
if ( get_option('permalink_structure') ) {
$str = str_replace( untrailingslashit( um_get_core_page('user') ), untrailingslashit( um_user_profile_url() ), $str );
} else {
$str = str_replace( um_get_core_page('user'), um_user_profile_url(), $str );
}
return $str;
}
}
+1 -1
View File
@@ -135,7 +135,7 @@ class UM_User {
$user_role = $this->get_role();
$this->role_meta = $ultimatemember->query->role_data( $user_role );
$this->role_meta = apply_filters('um_user_permissions_filter', $this->role_meta, $this->id);
$this->profile = array_merge( $this->profile, (array)$this->role_meta);
$this->profile['super_admin'] = ( is_super_admin( $this->id ) ) ? 1 : 0;
+1 -1
View File
@@ -3,7 +3,7 @@
Plugin Name: Ultimate Member
Plugin URI: http://ultimatemember.com/
Description: Ultimate Member is a powerful community and membership plugin that allows you to create beautiful community and membership sites with WordPress
Version: 1.0.27
Version: 1.0.29
Author: Ultimate Member
Author URI: http://ultimatemember.com/
*/
+27 -7
View File
@@ -3,11 +3,11 @@ Author URI: https://ultimatemember.com/
Plugin URI: https://ultimatemember.com/
Contributors: ultimatemember
Donate link:
Tags: access control, community, communities, conditional fields, conditional logic, conditional menus, content protection, custom fields, file uploads, form builder, front-end login, front-end registration, hide wp-admin, login, login page, logged-in users, member, members, membership, member directory, profile, profiles, profile builder, registration, restrict content, role creation, role menus, search filters, sign in, sign up, social network, star ratings, toolbar, user, users, user fields, user profiles, user roles
Tags: access control, community, communities, conditional fields, conditional logic, conditional menus, content protection, custom fields, file uploads, form builder, front-end login, front-end registration, hide wp-admin, login, login page, logged-in users, mandrill, member, members, membership, member directory, profile, profiles, profile builder, registration, restrict content, role creation, role menus, search filters, sign in, sign up, social network, star ratings, toolbar, user, users, user fields, user profiles, user roles
Requires at least: 4.1
Tested up to: 4.1
Stable Tag: 1.0.27
Stable Tag: 1.0.29
License: GNU Version 2 or Any Later Version
@@ -38,6 +38,8 @@ Features of the plugin include:
* Mobile adaptive & responsive
* SEO optimized
* Developer friendly with dozens of actions and filters
* Multi-site compatibility
* Mandrill compatibility
**Front-end registration**
@@ -127,6 +129,10 @@ No, we have built Ultimate Member to be extremely easy to use and does not requi
Yes. Ultimate Member is designed to adapt nicely to any screen resolution. It includes specific designs for phones, tablets and desktops.
= Is Ultimate Member multi-site compatible? =
Yes. Ultimate Member works great on both single site and multi-site WordPress installs.
= Where can I get support? =
If you need help with Ultimate Member the best place to ask for help is via the Ultimate Member community forum where you can get answers from the Ultimate Member team and other members.
@@ -143,10 +149,6 @@ Yes. Ultimate Member will work with any properly coded theme. However, some them
The plugin works with popular caching plugins by automatically excluding Ultimate Member pages from being cached. This ensures other visitors to a page will not see the private information of another user. However, if you add features of Ultimate Member to other pages you have to exclude those pages from being cached through your cache plugin settings panel.
= Does the plugin work on WordPress Multisite? =
Yes. The plugin works fine with WordPress network / multisite now. In a recent update, we have made it possible to show the user photos network-wide.
== Screenshots ==
1. Front-end User Profile (Edit mode)
@@ -168,6 +170,24 @@ Yes. The plugin works fine with WordPress network / multisite now. In a recent u
== Changelog ==
= 1.0.29: January 28, 2015 =
* New: added feature to show user display name in menu (e.g. Welcome, {display_name})
* New: added option to add text to dividers (which can be added using the drag-and-drop form builder)
* New: security improvement: added whitelisted IP(s) option to allow you to access the WP-admin screen always (prevents lockout)
* New: added filter hook um_whitelisted_wpadmin_access to control access to wp-admin login screens (for developers)
* New: added custom css option to apply extra css styling rules from plugin settings
* New: added custom css option to each form allowing you to apply extra styling rules per form
* New: added option to customize profile fields area width (per form basis) besides global option
* Tweak: compatibility with default permalinks (Pretty permalinks are strongly recommended though!)
* Tweak: improved the function that gets user IP address
* Tweak: performance: inline css from the plugin is automatically compressed/minified
= 1.0.28: January 27, 2015 =
* New: added compatibility with wpMandrill to handle email delivery
* Fixed: Issue with profile edit menu not appearing
= 1.0.27: January 27, 2015 =
* Fixed: WP admin bar issue with some plugins and themes
@@ -239,7 +259,7 @@ Yes. The plugin works fine with WordPress network / multisite now. In a recent u
= 1.0.17: January 22, 2015 =
* New: WordPress Multisite compatibility for user uploads and photos
* New: WordPress Multi-site compatibility for user uploads and photos
* Fixed: Searching members by username or email in directory (partial search supported)
* Fixed: Anonymous tracking
* Fixed: Minor css fixes
+25 -3
View File
@@ -271,11 +271,17 @@ $this->sections[] = array(
'required' => array( 'wpadmin_register_redirect', '=', 'custom_url' ),
),
array(
'id' => 'wpadmin_allow_ips',
'type' => 'textarea',
'title' => __( 'Whitelisted Backend IPs' ),
'desc' => __('Always allow the specified IP addresses to access the backend login screen and WP-admin to avoid being locked from site backend.')
),
array(
'id' => 'blocked_ips',
'type' => 'textarea',
'title' => __( 'Blocked IP Addresses' ),
'desc' => __( 'Enter one IP per line, you can also use wildcards to block a specific range e.g. 41.83.*.*' ),
'desc' => __('This will block the listed IPs from signing up or signing in to the site, you can use full IP numbers or target specific range with a wildcard')
),
@@ -283,7 +289,6 @@ $this->sections[] = array(
'id' => 'blocked_emails',
'type' => 'textarea',
'title' => __( 'Blocked Email Addresses' ),
'desc' => __( 'Enter one email address per line and you can also specify all emails from specific service to be blocked by using wildcard: *@hotmail.com' ),
'desc' => __('This will block the specified e-mail addresses from being able to sign up or sign in to your site.')
),
@@ -291,7 +296,6 @@ $this->sections[] = array(
'id' => 'blocked_words',
'type' => 'textarea',
'title' => __( 'Blacklist Words' ),
'desc' => __( 'The words specified here can not be used as username during registration, please enter one word per line to prevent the usage of this word in a username / during registration' ),
'desc' => __('This option lets you specify blacklist of words to prevent anyone from signing up with such a word as their username'),
'default' => 'admin' . "\r\n" . 'administrator' . "\r\n" . 'webmaster' . "\r\n" . 'support' . "\r\n" . 'staff'
),
@@ -1445,6 +1449,24 @@ $this->sections[] = array(
);
$this->sections[] = array(
'subsection' => true,
'title' => __( 'Custom CSS'),
'fields' => array(
array(
'id' => 'custom_css',
'type' => 'textarea',
'title' => __( 'Custom CSS' ),
'desc' => __('Any custom css rules that you specify here will be applied globally to the plugin.'),
'rows' => 20,
),
)
);
/***
*** @
***/