mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-11 18:56:10 +09:00
Version 1.0.42
This commit is contained in:
@@ -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;}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
***/
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/***
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -292,7 +292,7 @@
|
||||
color: #fff !important;
|
||||
opacity: 0.85;
|
||||
margin: 0 1px;
|
||||
font-size: 16px;
|
||||
font-size: 22px;
|
||||
transition: 0.25s;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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; }
|
||||
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+57
-29
@@ -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 ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>';
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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">•</span>';
|
||||
|
||||
}
|
||||
|
||||
+6
-6
@@ -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' );
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user