Version 1.0.42

This commit is contained in:
ultimatemember
2015-02-06 02:38:41 +02:00
parent 4c04769219
commit bcffe8e193
21 changed files with 278 additions and 60 deletions
+6
View File
@@ -175,6 +175,12 @@
cursor: move !important;
}
.um-admin-drag-fld-title i {
width: 24px;
display: inline-block;
text-align: center;
}
.um-admin-drag-fld.um-field-type-group {background: #555;border: 0}
.um-admin-drag-fld-title.um-field-type-group,.um-admin-drag-fld-type.um-field-type-group {color: #fff}
.um-admin-drag-group {background: #FCFCFC;cursor: default;padding: 20px;border: 1px dashed #bbb;}
+8
View File
@@ -11,6 +11,14 @@
border: 0 !important;
}
.redux-container #import_export_default_section_group h4 {
margin: 0 0 12px 0 !important;
}
.redux-container #import_export_default_section_group .hr {
height: 4px !important;
}
.redux-sidebar .redux-group-menu li.active a, .redux-sidebar .redux-group-menu li.active a:hover, .redux-sidebar .redux-group-menu li.activeChild a, .redux-sidebar .redux-group-menu li.activeChild a:hover {
background: transparent;
}
+6
View File
@@ -340,6 +340,12 @@
case 'um_admin_preview_form':
$mode = $ultimatemember->query->get_attr('mode', $arg1 );
if ( $mode == 'profile' ) {
$ultimatemember->fields->editing = true;
}
$output = do_shortcode('[ultimatemember form_id='.$arg1.']');
break;
+42
View File
@@ -1,5 +1,47 @@
<?php
/***
*** @duplicate form
***/
add_action('um_admin_do_action__duplicate_form', 'um_admin_do_action__duplicate_form');
function um_admin_do_action__duplicate_form( $action ){
global $ultimatemember;
if ( !is_admin() || !current_user_can('manage_options') ) die();
if ( !isset($_REQUEST['post_id']) || !is_numeric( $_REQUEST['post_id'] ) ) die();
$post_id = $_REQUEST['post_id'];
$n = array(
'post_type' => 'um_form',
'post_title' => sprintf(__('Duplicate of %s','ultimatemember'), get_the_title($post_id) ),
'post_status' => 'publish',
'post_author' => um_user('ID'),
);
$n_id = wp_insert_post( $n );
$n_fields = get_post_custom( $post_id );
foreach ( $n_fields as $key => $value ) {
if ( $key == '_um_custom_fields' ) {
$the_value = unserialize( $value[0] );
} else {
$the_value = $value[0];
}
update_post_meta( $n_id, $key, $the_value );
}
delete_post_meta($n_id, '_um_core');
$url = admin_url('edit.php?post_type=um_form');
$url = add_query_arg('update','form_duplicated',$url);
exit( wp_redirect( $url ) );
}
/***
*** @download a language remotely
***/
+22
View File
@@ -12,6 +12,28 @@ class UM_Admin_Columns {
add_filter('manage_edit-um_directory_columns', array(&$this, 'manage_edit_um_directory_columns') );
add_action('manage_um_directory_posts_custom_column', array(&$this, 'manage_um_directory_posts_custom_column'), 10, 3);
add_filter('post_row_actions', array(&$this, 'post_row_actions'), 99, 2);
}
/***
*** @custom row actions
***/
function post_row_actions($actions, $post){
//check for your post type
if ($post->post_type =="um_form"){
$actions['um_duplicate'] = '<a href="' . $this->duplicate_uri( $post->ID ) . '">' . __('Duplicate','ultimatemember') . '</a>';
}
return $actions;
}
/***
*** @duplicate a form
***/
function duplicate_uri( $id ) {
$url = add_query_arg('um_adm_action', 'duplicate_form', admin_url('edit.php?post_type=um_form') );
$url = add_query_arg('post_id', $id, $url);
return $url;
}
/***
+4
View File
@@ -111,6 +111,10 @@ class UM_Admin_Notices {
$update = $_REQUEST['update'];
switch($update) {
case 'form_duplicated':
$messages[0]['content'] = __('The form has been duplicated successfully.','ultimatemember');
break;
case 'user_updated':
$messages[0]['content'] = __('User has been updated.','ultimatemember');
break;
+1 -1
View File
@@ -292,7 +292,7 @@
color: #fff !important;
opacity: 0.85;
margin: 0 1px;
font-size: 16px;
font-size: 22px;
transition: 0.25s;
}
+5
View File
@@ -281,6 +281,11 @@ font-weight: normal;
display: inline-block;
}
.um-meta span i {
font-size: 16px;
margin: 0 5px 0 0;
}
.um-meta-text {
margin: 6px 0 0 0;
color: #666;
+3 -1
View File
@@ -277,8 +277,10 @@ p.um-notice.err {
float: left;
margin: 0 8px 0 0;
height: 22px;
line-height: 22px;
line-height: 18px;
display: inline-block;
width: 24px;
text-align: center;
}
.um-field-label .um-field-label-icon i { font-size: 22px; height: 22px; line-height: 22px; vertical-align: middle; }
+1 -1
View File
File diff suppressed because one or more lines are too long
+57 -29
View File
@@ -28,13 +28,29 @@
$emails = array_map("rtrim", explode("\n", $emails));
if ( isset( $args['user_email'] ) && is_email( $args['user_email'] ) ) {
$domain = explode('@', $args['user_email'] );
$check_domain = str_replace($domain[0], '*', $args['user_email']);
if ( in_array( $args['user_email'], $emails ) )
exit( wp_redirect( add_query_arg('err', 'blocked_email') ) );
if ( in_array( $check_domain, $emails ) )
exit( wp_redirect( add_query_arg('err', 'blocked_domain') ) );
}
if ( isset( $args['username'] ) && is_email( $args['username'] ) ) {
$domain = explode('@', $args['username'] );
$check_domain = str_replace($domain[0], '*', $args['username']);
if ( in_array( $args['username'], $emails ) )
exit( wp_redirect( add_query_arg('err', 'blocked_email') ) );
if ( in_array( $check_domain, $emails ) )
exit( wp_redirect( add_query_arg('err', 'blocked_domain') ) );
}
}
@@ -80,7 +96,7 @@
if ( isset( $args[$key] ) ) {
if ( isset($array['validate']) && in_array( $array['validate'], array('unique_username','unique_email','unique_username_or_email') ) ) {
if ( preg_grep( "/".$args[$key]."/i" , $words ) ) {
$ultimatemember->form->add_error( $key, __('You are not allowed to use this word as your username.') );
$ultimatemember->form->add_error( $key, __('You are not allowed to use this word as your username.','ultimatemember') );
}
}
}
@@ -149,25 +165,25 @@
if ( isset( $array['max_words'] ) && $array['max_words'] > 0 ) {
if ( str_word_count( $args[$key] ) > $array['max_words'] ) {
$ultimatemember->form->add_error($key, sprintf(__('You are only allowed to enter a maximum of %s words'), $array['max_words']) );
$ultimatemember->form->add_error($key, sprintf(__('You are only allowed to enter a maximum of %s words','ultimatemember'), $array['max_words']) );
}
}
if ( isset( $array['min_chars'] ) && $array['min_chars'] > 0 ) {
if ( strlen( utf8_decode( $args[$key] ) ) < $array['min_chars'] ) {
$ultimatemember->form->add_error($key, sprintf(__('Your %s must contain at least %s characters'), $array['label'], $array['min_chars']) );
$ultimatemember->form->add_error($key, sprintf(__('Your %s must contain at least %s characters','ultimatemember'), $array['label'], $array['min_chars']) );
}
}
if ( isset( $array['max_chars'] ) && $array['max_chars'] > 0 ) {
if ( strlen( utf8_decode( $args[$key] ) ) > $array['max_chars'] ) {
$ultimatemember->form->add_error($key, sprintf(__('Your %s must contain less than %s characters'), $array['label'], $array['max_chars']) );
$ultimatemember->form->add_error($key, sprintf(__('Your %s must contain less than %s characters','ultimatemember'), $array['label'], $array['max_chars']) );
}
}
if ( isset( $array['html'] ) && $array['html'] == 0 ) {
if ( $args[$key] != htmlspecialchars($args[$key]) ) {
$ultimatemember->form->add_error($key, __('You can not use HTML tags here') );
$ultimatemember->form->add_error($key, __('You can not use HTML tags here','ultimatemember') );
}
}
@@ -179,22 +195,22 @@
if ( isset( $array['force_confirm_pass'] ) && $array['force_confirm_pass'] == 1 ) {
if ( $args[ 'confirm_' . $key] == '' && !$ultimatemember->form->has_error($key) ) {
$ultimatemember->form->add_error( 'confirm_' . $key , __('Please confirm your password') );
$ultimatemember->form->add_error( 'confirm_' . $key , __('Please confirm your password','ultimatemember') );
}
if ( $args[ 'confirm_' . $key] != $args[$key] && !$ultimatemember->form->has_error($key) ) {
$ultimatemember->form->add_error( 'confirm_' . $key , __('Your passwords do not match') );
$ultimatemember->form->add_error( 'confirm_' . $key , __('Your passwords do not match','ultimatemember') );
}
}
if ( isset( $array['min_selections'] ) && $array['min_selections'] > 0 ) {
if ( ( !isset($args[$key]) ) || ( isset( $args[$key] ) && is_array($args[$key]) && count( $args[$key] ) < $array['min_selections'] ) ) {
$ultimatemember->form->add_error($key, sprintf(__('Please select at least %s choices'), $array['min_selections'] ) );
$ultimatemember->form->add_error($key, sprintf(__('Please select at least %s choices','ultimatemember'), $array['min_selections'] ) );
}
}
if ( isset( $array['max_selections'] ) && $array['max_selections'] > 0 ) {
if ( isset( $args[$key] ) && is_array($args[$key]) && count( $args[$key] ) > $array['max_selections'] ) {
$ultimatemember->form->add_error($key, sprintf(__('You can only select up to %s choices'), $array['max_selections'] ) );
$ultimatemember->form->add_error($key, sprintf(__('You can only select up to %s choices','ultimatemember'), $array['max_selections'] ) );
}
}
@@ -204,56 +220,68 @@
case 'phone_number':
if ( !$ultimatemember->validation->is_phone_number( $args[$key] ) ) {
$ultimatemember->form->add_error($key, __('Please enter a valid phone number') );
$ultimatemember->form->add_error($key, __('Please enter a valid phone number','ultimatemember') );
}
break;
case 'youtube_url':
if ( !$ultimatemember->validation->is_url( $args[$key], 'youtube.com' ) ) {
$ultimatemember->form->add_error($key, sprintf(__('Please enter a valid %s username or profile URL','ultimatemember'), $array['label'] ) );
}
break;
case 'soundcloud_url':
if ( !$ultimatemember->validation->is_url( $args[$key], 'soundcloud.com' ) ) {
$ultimatemember->form->add_error($key, sprintf(__('Please enter a valid %s username or profile URL','ultimatemember'), $array['label'] ) );
}
break;
case 'facebook_url':
if ( !$ultimatemember->validation->is_url( $args[$key], 'facebook.com' ) ) {
$ultimatemember->form->add_error($key, sprintf(__('Please enter a valid %s username or profile URL'), $array['label'] ) );
$ultimatemember->form->add_error($key, sprintf(__('Please enter a valid %s username or profile URL','ultimatemember'), $array['label'] ) );
}
break;
case 'twitter_url':
if ( !$ultimatemember->validation->is_url( $args[$key], 'twitter.com' ) ) {
$ultimatemember->form->add_error($key, sprintf(__('Please enter a valid %s username or profile URL'), $array['label'] ) );
$ultimatemember->form->add_error($key, sprintf(__('Please enter a valid %s username or profile URL','ultimatemember'), $array['label'] ) );
}
break;
case 'instagram_url':
if ( !$ultimatemember->validation->is_url( $args[$key], 'instagram.com' ) ) {
$ultimatemember->form->add_error($key, sprintf(__('Please enter a valid %s username or profile URL'), $array['label'] ) );
$ultimatemember->form->add_error($key, sprintf(__('Please enter a valid %s username or profile URL','ultimatemember'), $array['label'] ) );
}
break;
case 'google_url':
if ( !$ultimatemember->validation->is_url( $args[$key], 'plus.google.com' ) ) {
$ultimatemember->form->add_error($key, sprintf(__('Please enter a valid %s username or profile URL'), $array['label'] ) );
$ultimatemember->form->add_error($key, sprintf(__('Please enter a valid %s username or profile URL','ultimatemember'), $array['label'] ) );
}
break;
case 'linkedin_url':
if ( !$ultimatemember->validation->is_url( $args[$key], 'linkedin.com' ) ) {
$ultimatemember->form->add_error($key, sprintf(__('Please enter a valid %s username or profile URL'), $array['label'] ) );
$ultimatemember->form->add_error($key, sprintf(__('Please enter a valid %s username or profile URL','ultimatemember'), $array['label'] ) );
}
break;
case 'skype':
if ( !$ultimatemember->validation->is_url( $args[$key], 'skype.com' ) ) {
$ultimatemember->form->add_error($key, sprintf(__('Please enter a valid %s username or profile URL'), $array['label'] ) );
$ultimatemember->form->add_error($key, sprintf(__('Please enter a valid %s username or profile URL','ultimatemember'), $array['label'] ) );
}
break;
case 'unique_username':
if ( $args[$key] == '' ) {
$ultimatemember->form->add_error($key, __('You must provide a username') );
$ultimatemember->form->add_error($key, __('You must provide a username','ultimatemember') );
} else if ( $mode == 'register' && username_exists( sanitize_user( $args[$key] ) ) ) {
$ultimatemember->form->add_error($key, __('Your username is already taken') );
$ultimatemember->form->add_error($key, __('Your username is already taken','ultimatemember') );
} else if ( is_email( $args[$key] ) ) {
$ultimatemember->form->add_error($key, __('Username cannot be an email') );
$ultimatemember->form->add_error($key, __('Username cannot be an email','ultimatemember') );
} else if ( !$ultimatemember->validation->safe_username( $args[$key] ) ) {
$ultimatemember->form->add_error($key, __('Your username contains invalid characters') );
$ultimatemember->form->add_error($key, __('Your username contains invalid characters','ultimatemember') );
}
break;
@@ -261,13 +289,13 @@
case 'unique_username_or_email':
if ( $args[$key] == '' ) {
$ultimatemember->form->add_error($key, __('You must provide a username') );
$ultimatemember->form->add_error($key, __('You must provide a username','ultimatemember') );
} else if ( $mode == 'register' && username_exists( sanitize_user( $args[$key] ) ) ) {
$ultimatemember->form->add_error($key, __('Your username is already taken') );
$ultimatemember->form->add_error($key, __('Your username is already taken','ultimatemember') );
} else if ( $mode == 'register' && email_exists( $args[$key] ) ) {
$ultimatemember->form->add_error($key, __('This email is already linked to an existing account') );
$ultimatemember->form->add_error($key, __('This email is already linked to an existing account','ultimatemember') );
} else if ( !$ultimatemember->validation->safe_username( $args[$key] ) ) {
$ultimatemember->form->add_error($key, __('Your username contains invalid characters') );
$ultimatemember->form->add_error($key, __('Your username contains invalid characters','ultimatemember') );
}
break;
@@ -275,13 +303,13 @@
case 'unique_email':
if ( $args[$key] == '' ) {
$ultimatemember->form->add_error($key, __('You must provide your email') );
$ultimatemember->form->add_error($key, __('You must provide your email','ultimatemember') );
} else if ( $mode == 'register' && email_exists( $args[$key] ) ) {
$ultimatemember->form->add_error($key, __('This email is already linked to an existing account') );
$ultimatemember->form->add_error($key, __('This email is already linked to an existing account','ultimatemember') );
} else if ( !is_email( $args[$key] ) ) {
$ultimatemember->form->add_error($key, __('This is not a valid email') );
$ultimatemember->form->add_error($key, __('This is not a valid email','ultimatemember') );
} else if ( !$ultimatemember->validation->safe_username( $args[$key] ) ) {
$ultimatemember->form->add_error($key, __('Your email contains invalid characters') );
$ultimatemember->form->add_error($key, __('Your email contains invalid characters','ultimatemember') );
}
break;
@@ -295,7 +323,7 @@
if ( isset( $args['description'] ) ) {
$max_chars = um_get_option('profile_bio_maxchars');
if ( strlen( utf8_decode( $args['description'] ) ) > $max_chars && $max_chars ) {
$ultimatemember->form->add_error('description', sprintf(__('Your user description must contain less than %s characters'), $max_chars ) );
$ultimatemember->form->add_error('description', sprintf(__('Your user description must contain less than %s characters','ultimatemember'), $max_chars ) );
}
}
+4
View File
@@ -89,6 +89,10 @@
$err = __('This email address has been blocked.','ultimatemember');
break;
case 'blocked_domain':
$err = __('We do not accept registrations from that domain.','ultimatemember');
break;
case 'blocked_ip':
$err = __('Your IP address has been blocked.','ultimatemember');
break;
+1 -1
View File
@@ -150,7 +150,7 @@
<span class="um-cover-overlay-s">
<ins>
<i class="um-faicon-picture-o"></i>
<span class="um-cover-overlay-t">'.__('Change your cover photo').'</span>
<span class="um-cover-overlay-t">'.__('Change your cover photo','ultimatemember').'</span>
</ins>
</span>
</span>';
+38
View File
@@ -675,6 +675,42 @@ class UM_Builtin {
'url_text' => 'Skype',
),
'youtube' => array(
'title' => __('YouTube','ultimatemember'),
'metakey' => 'youtube',
'type' => 'url',
'label' => __('YouTube','ultimatemember'),
'required' => 0,
'public' => 1,
'editable' => 1,
'url_target' => '_blank',
'url_rel' => 'nofollow',
'icon' => 'um-faicon-youtube',
'validate' => 'youtube_url',
'url_text' => 'YouTube',
'advanced' => 'social',
'color' => '#e52d27',
'match' => 'https://youtube.com/',
),
'soundcloud' => array(
'title' => __('SoundCloud','ultimatemember'),
'metakey' => 'soundcloud',
'type' => 'url',
'label' => __('SoundCloud','ultimatemember'),
'required' => 0,
'public' => 1,
'editable' => 1,
'url_target' => '_blank',
'url_rel' => 'nofollow',
'icon' => 'um-faicon-soundcloud',
'validate' => 'soundcloud_url',
'url_text' => 'SoundCloud',
'advanced' => 'social',
'color' => '#f50',
'match' => 'https://soundcloud.com/',
),
'role_select' => array(
'title' => __('Roles (Dropdown)','ultimatemember'),
'metakey' => 'role_select',
@@ -934,12 +970,14 @@ class UM_Builtin {
$array['numeric'] = 'Numeric value only';
$array['phone_number'] = 'Phone Number';
$array['skype'] = 'Skype ID';
$array['soundcloud'] = 'SoundCloud Profile';
$array['twitter_url'] = 'Twitter URL';
$array['unique_email'] = 'Unique E-mail';
$array['unique_value'] = 'Unique Metakey value';
$array['unique_username'] = 'Unique Username';
$array['unique_username_or_email'] = 'Unique Username/E-mail';
$array['url'] = 'Website URL';
$array['youtube_url'] = 'YouTube Profile';
$array['custom'] = 'Custom Validation';
$array = apply_filters('um_admin_field_validation_hook', $array );
+12 -4
View File
@@ -98,11 +98,15 @@ class UM_Files {
$this->upload_temp_url = $this->upload_baseurl . 'temp/';
if (!file_exists( $this->upload_basedir )) {
@mkdir( $this->upload_basedir, 0777, true);
$old = umask(0);
@mkdir( $this->upload_basedir, 0755, true);
umask($old);
}
if (!file_exists( $this->upload_temp )) {
@mkdir( $this->upload_temp , 0777, true);
$old = umask(0);
@mkdir( $this->upload_temp , 0755, true);
umask($old);
}
}
@@ -241,7 +245,9 @@ class UM_Files {
***/
function make_dir( $dir ){
@mkdir( $dir, 0777, true);
$old = umask(0);
@mkdir( $dir, 0755, true);
umask($old);
}
@@ -415,7 +421,9 @@ class UM_Files {
// if he does not have uploads dir yet
if ( !file_exists( $this->upload_basedir . $user_id . '/' ) ) {
@mkdir( $this->upload_basedir . $user_id . '/' , 0777, true);
$old = umask(0);
@mkdir( $this->upload_basedir . $user_id . '/' , 0755, true);
umask($old);
}
// name and extension stuff
+11 -7
View File
@@ -30,6 +30,9 @@
function um_profile_field_filter_hook__description( $value, $data ) {
global $ultimatemember;
if ( isset( $data ) && isset( $data['html'] ) && $data['html'] == 1 )
return $value;
$value = preg_replace(
array(
'/(?(?=<a[^>]*>.+<\/a>)
@@ -54,7 +57,6 @@
);
$value = wpautop($value);
return $value;
}
@@ -147,12 +149,14 @@
&& !strstr( $value, '.net' )
&& !strstr( $value, '.org' )
) {
if ( $data['validate'] == 'facebook_url' ) $value = 'http://facebook.com/' . $value;
if ( $data['validate'] == 'twitter_url' ) $value = 'http://twitter.com/' . $value;
if ( $data['validate'] == 'linkedin_url' ) $value = 'http://linkedin.com/' . $value;
if ( $data['validate'] == 'skype' ) $value = 'http://skype.com/' . $value;
if ( $data['validate'] == 'googleplus_url' ) $value = 'http://plus.google.com/' . $value;
if ( $data['validate'] == 'instagram_url' ) $value = 'http://instagram.com/' . $value;
if ( $data['validate'] == 'soundcloud_url' ) $value = 'https://soundcloud.com/' . $value;
if ( $data['validate'] == 'youtube_url' ) $value = 'https://youtube.com/user/' . $value;
if ( $data['validate'] == 'facebook_url' ) $value = 'https://facebook.com/' . $value;
if ( $data['validate'] == 'twitter_url' ) $value = 'https://twitter.com/' . $value;
if ( $data['validate'] == 'linkedin_url' ) $value = 'https://linkedin.com/' . $value;
if ( $data['validate'] == 'skype' ) $value = 'https://skype.com/' . $value;
if ( $data['validate'] == 'googleplus_url' ) $value = 'https://plus.google.com/' . $value;
if ( $data['validate'] == 'instagram_url' ) $value = 'https://instagram.com/' . $value;
}
if ( strpos($value, 'http://') !== 0 ) {
$value = 'http://' . $value;
+12 -1
View File
@@ -78,9 +78,20 @@ class UM_Profile {
$data = '';
if ( $key && um_user( $key ) ) {
if ( isset( $ultimatemember->builtin->all_user_fields[$key]['icon'] ) ) {
$icon = $ultimatemember->builtin->all_user_fields[$key]['icon'];
} else {
$icon = '';
}
$icon = ( isset( $icon ) && !empty( $icon ) ) ? '<i class="'.$icon.'"></i>' : '';
if ( !um_get_option('profile_show_metaicon') )
$icon = '';
$value = um_filtered_value( $key );
$items[] = '<span>' . $value . '</span>';
$items[] = '<span>' . $icon . $value . '</span>';
$items[] = '<span class="b">&bull;</span>';
}
+6 -6
View File
@@ -379,19 +379,19 @@ class UM_Setup {
foreach( $users as $id ) {
if ( !get_user_meta( $id, 'account_status', true ) ) {
update_user_meta( $id, 'account_status', 'approved' );
}
delete_user_meta( $id, 'role' );
if ( !is_super_admin( $id ) ) {
if ( is_numeric( $id ) ) {
update_user_meta( $id, 'role', 'member' );
}
} else {
if ( is_numeric( $id ) ) {
update_user_meta( $id, 'role', 'admin' );
}
}
}
+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.41
Version: 1.0.42
Author: Ultimate Member
Author URI: http://ultimatemember.com/
*/
+14 -1
View File
@@ -7,7 +7,7 @@ Tags: access control, author, authors, author profile, comments, community, comm
Requires at least: 4.1
Tested up to: 4.1
Stable Tag: 1.0.41
Stable Tag: 1.0.42
License: GNU Version 2 or Any Later Version
@@ -184,6 +184,19 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
== Changelog ==
= 1.0.42: February 6, 2015 =
* New: added option to block specific e-mail domains from registering
* New: 2 new social profile fields: YouTube and SoundCloud
* New: added option to show field icons in profile header
* New: import/export plugin settings feature added to the backend
* New: added option to duplicate forms in backend with one click
* Tweak: cleaned up installation code
* Tweak: minor css modifications
* Fixed: adding HTML and iframe content to html-allowed textarea fields
* Fixed: upload folders permissions with some configurations and servers
* Fixed: live preview of profile forms in backend
= 1.0.41: February 5, 2015 =
* New: added access control settings to custom post types, you can have custom access settings applied to your custom post types now
+21 -4
View File
@@ -317,28 +317,28 @@ $this->sections[] = array(
'id' => 'wpadmin_allow_ips',
'type' => 'textarea',
'title' => __( 'Whitelisted Backend IPs','ultimatemember' ),
'desc' => __('Always allow the specified IP addresses to access the backend login screen and WP-admin to avoid being locked from site backend.')
'desc' => __('Always allow the specified IP addresses to access the backend login screen and WP-admin to avoid being locked from site backend.','ultimatemember'),
),
array(
'id' => 'blocked_ips',
'type' => 'textarea',
'title' => __( 'Blocked IP Addresses','ultimatemember' ),
'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')
'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','ultimatemember'),
),
array(
'id' => 'blocked_emails',
'type' => 'textarea',
'title' => __( 'Blocked Email Addresses','ultimatemember' ),
'desc' => __('This will block the specified e-mail addresses from being able to sign up or sign in to your site.')
'desc' => __('This will block the specified e-mail addresses from being able to sign up or sign in to your site. To block an entire domain, use something like *@domain.com','ultimatemember'),
),
array(
'id' => 'blocked_words',
'type' => 'textarea',
'title' => __( 'Blacklist Words','ultimatemember' ),
'desc' => __('This option lets you specify blacklist of words to prevent anyone from signing up with such a word as their username'),
'desc' => __('This option lets you specify blacklist of words to prevent anyone from signing up with such a word as their username','ultimatemember'),
'default' => 'admin' . "\r\n" . 'administrator' . "\r\n" . 'webmaster' . "\r\n" . 'support' . "\r\n" . 'staff'
),
@@ -1259,6 +1259,16 @@ $this->sections[] = array(
'required' => array( 'profile_cover_enabled', '=', 1 ),
),
array(
'id' => 'profile_show_metaicon',
'type' => 'switch',
'title' => __( 'Profile Header Meta Text Icon','ultimatemember' ),
'default' => 0,
'desc' => __('Display field icons for related user meta fields in header or not','ultimatemember'),
'on' => __('On','ultimatemember'),
'off' => __('Off','ultimatemember'),
),
array(
'id' => 'profile_header_text',
'type' => 'color',
@@ -1646,6 +1656,13 @@ $this->sections[] = array(
'title' => __('Advanced','ultimatemember'),
'fields' => array(
array(
'id' => 'import_export',
'type' => 'import_export',
'title' => __('Import & Export Settings','ultimatemember'),
'full_width' => true,
),
array(
'id' => 'disable_minify',
'type' => 'switch',