Update 1.0.83

This commit is contained in:
ultimatemember
2015-03-12 18:22:29 +02:00
parent f8ed8f0208
commit 506593f409
22 changed files with 322 additions and 29 deletions
+11
View File
@@ -1,3 +1,14 @@
#um-extensions-wrap a.plugin-image,
#um-extensions-wrap a.plugin-image img {
max-width: 100%;
display: block;
}
#um-extensions-wrap .plugin-card .name,
#um-extensions-wrap .plugin-card .desc {
margin-left: 0;
}
#um-metaboxes-general.wrap h2 {
font-size: 23px;
font-weight: 400;
+4 -4
View File
@@ -91,10 +91,10 @@ jQuery(document).ready(function() {
Tooltips
**/
jQuery('.um-admin-tipsy-n,#redux-share a').tipsy({gravity: 'n', opacity: 1, live: true });
jQuery('.um-admin-tipsy-w').tipsy({gravity: 'w', opacity: 1, live: true });
jQuery('.um-admin-tipsy-e').tipsy({gravity: 'e', opacity: 1, live: true });
jQuery('.um-admin-tipsy-s').tipsy({gravity: 's', opacity: 1, live: true });
jQuery('.um-admin-tipsy-n,#redux-share a').tipsy({gravity: 'n', opacity: 1, live: 'a.live' });
jQuery('.um-admin-tipsy-w').tipsy({gravity: 'w', opacity: 1, live: 'a.live' });
jQuery('.um-admin-tipsy-e').tipsy({gravity: 'e', opacity: 1, live: 'a.live' });
jQuery('.um-admin-tipsy-s').tipsy({gravity: 's', opacity: 1, live: 'a.live' });
/**
Conditional fields
+6
View File
@@ -43,6 +43,8 @@ class UM_Admin_Dashboard {
}
do_action('um_extend_admin_menu');
add_submenu_page( $this->slug, __('Extensions', $this->slug), '<span style="color: #19e0ff">' .__('Extensions', $this->slug) . '</span>', 'manage_options', $this->slug . '-extensions', array(&$this, 'admin_page') );
}
@@ -196,6 +198,10 @@ class UM_Admin_Dashboard {
<?php
} else if ( $page == 'ultimatemember-extensions' ) {
include_once um_path . 'admin/templates/extensions.php';
} else if ( strstr( $page, 'ultimatemember-' ) ) {
$template = str_replace('ultimatemember-','',$page);
+90
View File
@@ -0,0 +1,90 @@
<div id="um-extensions-wrap" class="wrap">
<h2>Ultimate Member - Extensions</h2>
<div class="wp-filter">
<p>Our free & paid extensions help you extend the functionality of your community powered by Ultimate Member.</p>
</div>
<div class="wp-list-table widefat plugin-install">
<div id="the-list">
<div class="plugin-card">
<a href="https://ultimatemember.com/extensions/mailchimp/" class="plugin-image"><img src="https://ultimatemember.com/wp-content/uploads/2015/02/mailchimp-01-copy.png" /></a>
<div class="plugin-card-top">
<div class="name column-name">
<h4><a href="https://ultimatemember.com/extensions/mailchimp/">MailChimp</a></h4>
</div>
<div class="action-links">
<ul class="plugin-action-buttons"><li><a class="install-now button" href="https://ultimatemember.com/extensions/mailchimp/">Buy Now</a></li>
<li><a href="https://ultimatemember.com/extensions/mailchimp/">More Details</a></li></ul> </div>
<div class="desc column-description">
<p>This extension integrates MailChimp with Ultimate Member and allows users to subscribe to your mailing lists when they register on your site.</p>
</div>
</div>
</div>
<div class="plugin-card">
<a href="https://ultimatemember.com/extensions/social-login/" class="plugin-image"><img src="https://ultimatemember.com/wp-content/uploads/2015/02/sociallogin.png" /></a>
<div class="plugin-card-top">
<div class="name column-name">
<h4><a href="https://ultimatemember.com/extensions/social-login/">Social Login</a></h4>
</div>
<div class="action-links">
<ul class="plugin-action-buttons"><li><a class="install-now button" href="https://ultimatemember.com/extensions/social-login/">Buy Now</a></li>
<li><a href="https://ultimatemember.com/extensions/social-login/">More Details</a></li></ul> </div>
<div class="desc column-description">
<p>The social login extension allows users to easily register/login to your site using their social network accounts (Facebook, Twitter, Google+, LinkedIn)</p>
</div>
</div>
</div>
<div class="plugin-card">
<a href="https://ultimatemember.com/extensions/bbpress/" class="plugin-image"><img src="https://ultimatemember.com/wp-content/uploads/2015/02/bbpress-copy.png" /></a>
<div class="plugin-card-top">
<div class="name column-name">
<h4><a href="https://ultimatemember.com/extensions/bbpress/">bbPress</a></h4>
</div>
<div class="action-links">
<ul class="plugin-action-buttons"><li><a class="install-now button" href="https://ultimatemember.com/extensions/bbpress/">Buy Now</a></li>
<li><a href="https://ultimatemember.com/extensions/bbpress/">More Details</a></li></ul> </div>
<div class="desc column-description">
<p>Integrates the popular forums plugin bbPress with Ultimate Member.</p>
</div>
</div>
</div>
<div class="plugin-card">
<a href="https://ultimatemember.com/extensions/mycred/" class="plugin-image"><img src="https://ultimatemember.com/wp-content/uploads/2015/02/mycred1.png" /></a>
<div class="plugin-card-top">
<div class="name column-name">
<h4><a href="https://ultimatemember.com/extensions/mycred/">myCRED</a></h4>
</div>
<div class="action-links">
<ul class="plugin-action-buttons"><li><a class="install-now button" href="https://ultimatemember.com/extensions/mycred/">Buy Now</a></li>
<li><a href="https://ultimatemember.com/extensions/mycred/">More Details</a></li></ul> </div>
<div class="desc column-description">
<p>With our myCRED extension, reward or charge your users for using Ultimate Member features and doing profile updates and show their rank and badges beautifully in their user profile.</p>
</div>
</div>
</div>
<div class="plugin-card">
<a href="https://ultimatemember.com/extensions/google-recaptcha/" class="plugin-image"><img src="https://ultimatemember.com/wp-content/uploads/2015/02/recaptcha-01-copy.png" /></a>
<div class="plugin-card-top">
<div class="name column-name">
<h4><a href="https://ultimatemember.com/extensions/google-recaptcha/">Google reCAPTCHA</a></h4>
</div>
<div class="action-links">
<ul class="plugin-action-buttons"><li><a class="install-now button" href="https://ultimatemember.com/extensions/google-recaptcha/">Download</a></li>
<li><a href="https://ultimatemember.com/extensions/google-recaptcha/">More Details</a></li></ul> </div>
<div class="desc column-description">
<p>With our free Google reCAPTCHA extension, you can stop spam registrations on your site easily.</p>
</div>
</div>
</div>
</div>
</div>
</div><div class="um-admin-clear"></div>
+29
View File
@@ -0,0 +1,29 @@
.um-login.um-logout {
max-width: 300px !important;
}
.um-misc-with-img {
position: relative;
font-size: 15px;
border-bottom: 3px solid #eee;
text-align: center;
margin-bottom: 14px;
padding-top: 4px;
padding-bottom: 14px;
}
.um-misc-img {
text-align: center;
}
.um-misc-img img {
border-radius: 999px;
height: auto !important;
display: inline-block;
}
.um-misc-ul,
.um-misc-ul li {
font-size: 14px;
}
+1 -1
View File
File diff suppressed because one or more lines are too long
+4 -4
View File
@@ -25,10 +25,10 @@ jQuery(document).ready(function() {
jQuery(this).parents( parent ).find( child ).trigger('click');
});
jQuery('.um-tip-n').tipsy({gravity: 'n', opacity: 1, live: true, offset: 3 });
jQuery('.um-tip-w').tipsy({gravity: 'w', opacity: 1, live: true, offset: 3 });
jQuery('.um-tip-e').tipsy({gravity: 'e', opacity: 1, live: true, offset: 3 });
jQuery('.um-tip-s').tipsy({gravity: 's', opacity: 1, live: true, offset: 3 });
jQuery('.um-tip-n').tipsy({gravity: 'n', opacity: 1, live: 'a.live', offset: 3 });
jQuery('.um-tip-w').tipsy({gravity: 'w', opacity: 1, live: 'a.live', offset: 3 });
jQuery('.um-tip-e').tipsy({gravity: 'e', opacity: 1, live: 'a.live', offset: 3 });
jQuery('.um-tip-s').tipsy({gravity: 's', opacity: 1, live: 'a.live', offset: 3 });
jQuery('.um-field input[type=radio]').change(function(){
var field = jQuery(this).parents('.um-field');
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -63,7 +63,7 @@
global $ultimatemember;
// errors on general tab
if ( isset($_POST['um_account_submit']) && !$_POST['um_account_submit'] == __('Delete Account','ultimatemember') ) {
if ( isset($_POST['um_account_submit']) && $_POST['um_account_submit'] != __('Delete Account','ultimatemember') ) {
if ( isset($_POST['first_name']) && strlen(trim( $_POST['first_name'] ) ) == 0 ) {
$ultimatemember->form->add_error('first_name', __('You must provide your first name','ultimatemember') );
+12 -8
View File
@@ -117,16 +117,20 @@
$ultimatemember->form->add_error('user_password', 'You must enter a new password');
}
if ( strlen( utf8_decode( $args['user_password'] ) ) < 8 ) {
$ultimatemember->form->add_error('user_password', __('Your password must contain at least 8 characters') );
}
if ( um_get_option('reset_require_strongpass') ) {
if ( strlen( utf8_decode( $args['user_password'] ) ) > 30 ) {
$ultimatemember->form->add_error('user_password', __('Your password must contain less than 30 characters') );
}
if ( strlen( utf8_decode( $args['user_password'] ) ) < 8 ) {
$ultimatemember->form->add_error('user_password', __('Your password must contain at least 8 characters') );
}
if ( strlen( utf8_decode( $args['user_password'] ) ) > 30 ) {
$ultimatemember->form->add_error('user_password', __('Your password must contain less than 30 characters') );
}
if ( !$ultimatemember->validation->strong_pass( $args['user_password'] ) ) {
$ultimatemember->form->add_error('user_password', __('Your password must contain at least one lowercase letter, one capital letter and one number','ultimatemember') );
if ( !$ultimatemember->validation->strong_pass( $args['user_password'] ) ) {
$ultimatemember->form->add_error('user_password', __('Your password must contain at least one lowercase letter, one capital letter and one number','ultimatemember') );
}
}
if ( !$args['confirm_user_password'] ) {
+16
View File
@@ -47,4 +47,20 @@
}
}
/***
*** @adds main links to a logout widget
***/
add_action('um_logout_user_links', 'um_logout_user_links', 100 );
function um_logout_user_links( $args ) {
global $ultimatemember;
?>
<li><a href="<?php echo um_get_core_page('account'); ?>"><?php _e('Your account','ultimatemember'); ?></a></li>
<li><a href="<?php echo add_query_arg('redirect_to', $ultimatemember->permalinks->get_current_url(true), um_get_core_page('logout') ); ?>"><?php _e('Logout','ultimatemember'); ?></a></li>
<?php
}
+3
View File
@@ -160,6 +160,9 @@ class UM_Enqueue {
wp_register_style('um_account', um_url . 'assets/css/um-account.css' );
wp_enqueue_style('um_account');
wp_register_style('um_misc', um_url . 'assets/css/um-misc.css' );
wp_enqueue_style('um_misc');
}
/***
+4 -2
View File
@@ -365,10 +365,12 @@ class UM_Files {
}
$is_temp = um_is_temp_upload( $src );
if ( $is_temp )
if ( $is_temp ) {
unlink( $is_temp );
rmdir( dirname( $is_temp ) );
} else {
die('Not a valid temp file');
}
}
/***
+29 -2
View File
@@ -23,18 +23,45 @@
$sections[] = array(
'icon' => 'um-faicon-plug',
'title' => __( 'Add ons','ultimatemember'),
'title' => __( 'Extensions','ultimatemember'),
);
$sections[] = array(
'subsection' => true,
'title' => __( 'Built-in Add ons','ultimatemember'),
'title' => __( 'Tools','ultimatemember'),
'fields' => $array,
);
return $sections;
}
/***
*** @licenses
***/
add_filter("redux/options/um_options/sections", 'um_add_licenses_tab', 9999 );
function um_add_licenses_tab($sections){
global $ultimatemember;
$fields = array();
$fields = apply_filters('um_licensed_products_settings', $fields );
if ( $fields ) {
$sections[] = array(
'icon' => 'um-faicon-key',
'title' => __( 'Licenses','ultimatemember'),
'fields' => $fields,
'subsection' => false,
);
}
return $sections;
}
+17
View File
@@ -1,5 +1,22 @@
<?php
/***
*** @conditional logout form
***/
add_filter('um_shortcode_args_filter', 'um_display_logout_form', 99);
function um_display_logout_form( $args ) {
global $ultimatemember;
if ( is_user_logged_in() && isset( $args['mode'] ) && $args['mode'] == 'login' ) {
$args['template'] = 'logout';
}
return $args;
}
/***
*** @filter for shortcode args
***/
+1 -1
View File
@@ -131,7 +131,7 @@
if ( !$value ) return '';
if ( ( isset( $data['validate'] ) && $data['validate'] != '' && strstr( $data['validate'], 'url' ) ) || ( $data['type'] == 'url' ) ) {
if ( ( isset( $data['validate'] ) && $data['validate'] != '' && strstr( $data['validate'], 'url' ) ) || ( isset( $data['type'] ) && $data['type'] == 'url' ) ) {
$alt = ( isset( $data['url_text'] ) && !empty( $data['url_text'] ) ) ? $data['url_text'] : $value;
$url_rel = ( isset( $data['url_rel'] ) ) ? 'rel="nofollow"' : '';
if( !strstr( $value, 'http' )
+9 -2
View File
@@ -219,11 +219,18 @@ function um_profile_id() {
***/
function um_is_temp_upload( $url ) {
global $ultimatemember;
$url = explode('/ultimatemember/temp/', $url);
if ( isset( $url[1] ) ) {
$src = $ultimatemember->files->upload_temp . $url[1];
if ( !file_exists( $src ) )
if ( strstr( $url[1], '../' ) || strstr( $url[1], '%' ) ) {
return false;
}
$src = $ultimatemember->files->upload_temp . $url[1];
if ( !file_exists( $src ) ) {
return false;
}
return $src;
}
return false;
+7 -1
View File
@@ -38,7 +38,7 @@ class UM_Shortcodes {
/***
*** @Add class based on shortcode
***/
function get_class( $mode ){
function get_class( $mode, $args = array() ){
global $ultimatemember;
@@ -56,6 +56,10 @@ class UM_Shortcodes {
$classes .= ' um-viewing';
}
if ( isset( $args['template'] ) && $args['template'] != $args['mode'] ) {
$classes .= ' um-' . $args['template'];
}
$classes = apply_filters('um_form_official_classes__hook', $classes);
return $classes;
}
@@ -97,6 +101,7 @@ class UM_Shortcodes {
$args = array_merge( $this->get_css_args( $args ), $args );
}
// filter for arguments
$args = apply_filters('um_shortcode_args_filter', $args );
extract( $args, EXTR_SKIP );
@@ -106,6 +111,7 @@ class UM_Shortcodes {
$args['role'] != $ultimatemember->query->get_role_by_userid( um_profile_id() ) )
return;
// start loading the template here
do_action("um_pre_{$mode}_shortcode", $args);
do_action("um_before_form_is_loaded", $args);
+1 -1
View File
@@ -3,7 +3,7 @@
Plugin Name: Ultimate Member
Plugin URI: http://ultimatemember.com/
Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
Version: 1.0.78
Version: 1.0.83
Author: Ultimate Member
Author URI: http://ultimatemember.com/
*/
+41 -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.1
Stable Tag: 1.0.78
Stable Tag: 1.0.83
License: GNU Version 2 or Any Later Version
@@ -42,6 +42,19 @@ Features of the plugin include:
* Multi-site compatibility
* Mandrill compatibility
**Paid Extensions**
You can extend the power of Ultimate Member with one of our premium extensions:
* [Social Login](https://ultimatemember.com/extensions/social-login/)
* [MailChimp](https://ultimatemember.com/extensions/mailchimp/)
* [bbPress](https://ultimatemember.com/extensions/bbpress/)
* [myCRED](https://ultimatemember.com/extensions/mycred/)
**Free Extensions**
* [Google reCAPTCHA](https://ultimatemember.com/extensions/google-recaptcha/)
**Front-end registration**
Ultimate Member allows visitors to your site to register and become members. You can decide whether users can register automatically; require them to active account via email link or you an admin can manually approve/reject user registrations after reviewing details.
@@ -189,6 +202,33 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
== Changelog ==
= 1.0.83: March 12, 2015 =
* New: added a logout template If user is already logged in (customizable)
* New: strong password formula not required when resetting password (optional)
* Fixed: jQuery issue with live() method - Thanks to Jim Wetton
= 1.0.82: March 11, 2015 =
* Fixed: issue with saving user account general tab
= 1.0.81: March 11, 2015 =
* New: official support for plugin extensions released
= 1.0.80: March 10, 2015 =
* Tweak: added licensing support to plugin core
* Fixed: issue with account form
= 1.0.79: March 10, 2015 =
* Tweak: Redux up to date
* Fixed: security issue related to deleting a temp file via ajax
* Fixed: bug with a php warning on undefined field type
Credits to "James Golovich http://www.pritect.net" for the security checks
= 1.0.78: March 10, 2015 =
* Fixed: important correction from previous version
+25
View File
@@ -0,0 +1,25 @@
<div class="um <?php echo $this->get_class( $mode, $args ); ?> um-<?php echo $form_id; ?>" data-error_required="This field is required" data-password_not_match="Passwords do not match" data-password_not_long="Password must be 8 characters at least">
<div class="um-form">
<div class="um-misc-with-img">
<div class="um-misc-img">
<a href="<?php echo um_get_core_page('user'); ?>"><?php echo um_user('profile_photo', 80); ?></a>
</div>
<div><strong><?php echo um_user('display_name'); ?></strong></div>
<?php do_action('um_logout_after_user_welcome', $args ); ?>
</div>
<ul class="um-misc-ul">
<?php do_action('um_logout_user_links', $args ); ?>
</ul>
</div>
</div>
+10
View File
@@ -98,6 +98,16 @@ $this->sections[] = array(
'off' => __('No','ultimatemember'),
),
array(
'id' => 'reset_require_strongpass',
'type' => 'switch',
'title' => __( 'Require a strong password? (when user resets password only)','ultimatemember' ),
'default' => 0,
'desc' => __('Enable or disable a strong password rules on password reset and change procedure','ultimatemember'),
'on' => __('On','ultimatemember'),
'off' => __('Off','ultimatemember'),
),
)
);