Update 1.0.76

This commit is contained in:
ultimatemember
2015-03-07 13:07:49 +02:00
parent 6ff2da7672
commit 22d5c2d24a
41 changed files with 453 additions and 242 deletions
+108
View File
@@ -0,0 +1,108 @@
<?php
class UM_ADDON_bp_avatar_transfer {
function __construct() {
add_action('admin_menu', array(&$this, 'admin_menu'), 1001);
add_action('admin_init', array(&$this, 'admin_init'), 1);
add_action('um_admin_addon_hook', array(&$this, 'um_admin_addon_hook') );
}
/***
*** @extends the admin menu
***/
function admin_menu() {
global $ultimatemember;
$this->addon = $ultimatemember->addons['bp_avatar_transfer'];
add_submenu_page('ultimatemember', $this->addon[0], $this->addon[0], 'manage_options', 'bp_avatar_transfer', array(&$this, 'content') );
}
/***
*** @Runs a custom hook
***/
function um_admin_addon_hook( $hook ) {
global $ultimatemember;
switch( $hook ) {
case 'bp_avatar_transfer':
if ( class_exists('BuddyPress') ) {
$path = bp_core_avatar_upload_path() . '/avatars';
$files = glob( $path . '/*');
$i = 0;
foreach( $files as $key ) {
$q = (count(glob("$key/*")) === 0) ? 0 : 1;
if ( $q == 1 ) {
$photo = glob( $key . '/*');
foreach( $photo as $file ) {
if ( strstr( $file, 'bpfull' ) ) {
$get_user_id = explode('/', $file);
array_pop($get_user_id);
$user_id = end($get_user_id);
if ( !file_exists( $ultimatemember->files->upload_basedir . $user_id . '/profile_photo.jpg' ) ) {
$ultimatemember->files->new_user( $user_id );
copy( $file, $ultimatemember->files->upload_basedir . $user_id . '/profile_photo.jpg' );
update_user_meta($user_id, 'profile_photo', 'profile_photo.jpg');
$i++;
}
}
}
}
}
$this->content = '<p><strong>Done. Process completed!</p>';
$this->content .= $i . ' user(s) changed.</strong></p>';
}
break;
}
}
/***
*** @Change admin content
***/
function admin_init() {
if ( isset( $_REQUEST['um-addon-hook'] ) ) {
$hook = $_REQUEST['um-addon-hook'];
do_action("um_admin_addon_hook", $hook);
}
}
function content() {
$this->process_link = add_query_arg('um-addon-hook','bp_avatar_transfer');
?>
<div class="wrap">
<h2>Ultimate Member <sup style="font-size:15px"><?php echo ultimatemember_version; ?></sup></h2>
<h3><?php echo $this->addon[0]; ?></h3>
<?php if ( isset( $this->content ) ) {
echo $this->content;
} else { ?>
<p>This tool allows you to move all custom user photos/avatars from BuddyPress to Ultimate Member platform. This can help you If you are switching from BuddyPress.</p>
<p>Depending on your users database, this could take a few moments. To start the process, click the following button.</p>
<p><a href="<?php echo $this->process_link; ?>" class="button button-primary">Start transferring avatars</a></p>
<?php } ?>
</div><div class="clear"></div>
<?php
}
}
$UM_ADDON_bp_avatar_transfer = new UM_ADDON_bp_avatar_transfer();
+46 -23
View File
@@ -33,6 +33,7 @@
.redux-sidebar .redux-group-menu li.active a, .admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild a { .redux-sidebar .redux-group-menu li.active a, .admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild a {
color: #3ba1da !important; color: #3ba1da !important;
background: #e5e5e5;
} }
.redux-sidebar .redux-group-menu li.activeChild.hasSubSections a { .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a {
@@ -47,6 +48,9 @@
.redux-main { .redux-main {
background: none !important; background: none !important;
box-shadow: none !important;
border-left: 0 !important;
padding: 0 25px;
} }
.redux-container-sortable .checkbox-container input { .redux-container-sortable .checkbox-container input {
@@ -54,29 +58,34 @@
} }
#redux-header { #redux-header {
background: #3ba1da !important; background: transparent !important;
border-color: #3ba1da !important; border: none !important;
border-radius: 0 !important; padding: 0 !important;
padding: 0 0 0 20px !important; }
border-bottom: 0 !important;
.redux-container #redux-header .display_header {
margin: 0 0 10px 0 !important;
} }
#redux-header .display_header span { #redux-header .display_header span {
color: #fff !important; font-size: 15px;
font-size: 14px;
position: relative; position: relative;
top: -10px; top: -8px;
font-weight: 600; left: -3px;
padding-left: 4px; padding-left: 4px;
font-weight: 400;
line-height: 29px;
color: #222 !important;
} }
#redux-header h2 { #redux-header h2 {
color: #fff; color: #222;
font-size: 24px !important;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
background: url(../img/logo-header.png) no-repeat left 8px; font-size: 23px;
padding: 10px 10px 10px 80px; font-weight: 400;
padding: 2px 15px 4px 0px;
line-height: 29px;
} }
#redux-share {margin-top: 11px !important} #redux-share {margin-top: 11px !important}
@@ -118,15 +127,16 @@
.redux-sidebar .redux-group-tab-link-a i { .redux-sidebar .redux-group-tab-link-a i {
vertical-align: middle; vertical-align: middle;
font-size: 1.5em; font-size: 1.2em;
position: absolute; position: absolute;
width: 20px; width: 20px;
text-align: center; text-align: center;
top: 8px; top: 6px;
color: #888;
} }
.redux-sidebar .redux-menu-warning i, .redux-sidebar .redux-menu-error i, .redux-sidebar .hasSubSections .extraIconSubsections i { .redux-sidebar .redux-menu-warning i, .redux-sidebar .redux-menu-error i, .redux-sidebar .hasSubSections .extraIconSubsections i {
top: 14px; top: 11px;
} }
.redux-container ul.data-full{padding:0!important;margin:0!important} .redux-container ul.data-full{padding:0!important;margin:0!important}
@@ -140,38 +150,51 @@
.redux-container-switch {font-size: 13px} .redux-container-switch {font-size: 13px}
.redux-sidebar .redux-group-menu li {
margin-top: 4px;
}
.redux-sidebar .redux-group-menu li a { .redux-sidebar .redux-group-menu li a {
color: #555; color: #555;
opacity: 1 !important; opacity: 1 !important;
padding: 10px 4px 10px 14px; padding: 6px 4px 6px 14px;
border-radius: 3px;
border: none;
transition: all .2s linear !important;
} }
.redux-sidebar .redux-group-menu li a:hover { .redux-sidebar .redux-group-menu li a:hover {
background: #ddd; background: #e5e5e5;
color: #555; color: #333;
} }
.redux-sidebar .redux-group-menu li.activeChild.hasSubSections a { .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a {
background: #3ba1da !important; background: #3ba1da !important;
color: #fff;
} }
.redux-sidebar .redux-group-menu li.activeChild.hasSubSections a i {color: #fff !important}
.redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active { .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active {
border-right: 0; border-right: 0;
} }
.redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li { .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li {
border-right: 1px solid #DEDEDE; border-right: 0;
margin-top: 4px;
padding-left: 12px;
} }
.redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a { .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a {
background: transparent !important; background: transparent !important;
color: #555 !important; color: #555 !important;
border-bottom: 1px solid #E7E7E7; border-bottom: 0;
padding: 10px 4px 10px 14px !important; padding: 6px 4px 6px 14px !important;
} }
.redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a:hover { .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a:hover {
background: #ddd !important; background: #e5e5e5 !important;
color: #333 !important;
} }
.redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a { .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a {
+1 -1
View File
@@ -179,7 +179,7 @@
update_option('um_tracking_notice', 1 ); update_option('um_tracking_notice', 1 );
$tracking = new UM_Admin_Tracking(); $tracking = new UM_Tracking();
$tracking->send_checkin(true); $tracking->send_checkin(true);
exit( wp_redirect( remove_query_arg('um_adm_action') ) ); exit( wp_redirect( remove_query_arg('um_adm_action') ) );
+1 -1
View File
@@ -154,7 +154,7 @@ class UM_Admin_Dashboard {
function admin_page() { function admin_page() {
$page = $_REQUEST['page']; $page = $_REQUEST['page'];
if ( $page == 'ultimatemember' ) { if ( $page == 'ultimatemember' && !isset($_REQUEST['um-addon']) ) {
?> ?>
+3 -3
View File
@@ -428,15 +428,15 @@ class UM_Admin_Metabox {
} }
// needed on forms only // needed on forms only
if ( isset( $screen->id ) && strstr( $screen->id, 'um_form' ) ) { if ( !isset( $this->is_loaded ) && isset( $screen->id ) && strstr( $screen->id, 'um_form' ) ) {
$settings['textarea_rows'] = 8; $settings['textarea_rows'] = 8;
echo '<div class="um-hidden-editor-edit" style="display: none">'; echo '<div class="um-hidden-editor-edit" style="display:none;">';
wp_editor( '', 'um_editor_edit', $settings ); wp_editor( '', 'um_editor_edit', $settings );
echo '</div>'; echo '</div>';
echo '<div class="um-hidden-editor-new" style="display: none">'; echo '<div class="um-hidden-editor-new" style="display:none;">';
wp_editor( '', 'um_editor_new', $settings ); wp_editor( '', 'um_editor_new', $settings );
echo '</div>'; echo '</div>';
+1 -1
View File
@@ -52,7 +52,7 @@
$this->args = array( $this->args = array(
'opt_name' => 'um_options', // This is where your data is stored in the database and also becomes your global variable name. 'opt_name' => 'um_options', // This is where your data is stored in the database and also becomes your global variable name.
'display_name' => __('Settings', 'ultimatemember'), // Name that appears at the top of your panel 'display_name' => __('Ultimate Member', 'ultimatemember'), // Name that appears at the top of your panel
'display_version' => ultimatemember_version, // Version that appears at the top of your panel 'display_version' => ultimatemember_version, // Version that appears at the top of your panel
'menu_type' => 'submenu', //Specify if the admin menu should appear or not. Options: menu or submenu (Under appearance only) 'menu_type' => 'submenu', //Specify if the admin menu should appear or not. Options: menu or submenu (Under appearance only)
'allow_sub_menu' => false, // Show the sections below the admin menu item or not 'allow_sub_menu' => false, // Show the sections below the admin menu item or not
+2 -4
View File
@@ -39,8 +39,7 @@ class UM_Admin_API {
require_once um_path . 'admin/core/um-admin-roles.php'; require_once um_path . 'admin/core/um-admin-roles.php';
require_once um_path . 'admin/core/um-admin-builder.php'; require_once um_path . 'admin/core/um-admin-builder.php';
require_once um_path . 'admin/core/um-admin-dragdrop.php'; require_once um_path . 'admin/core/um-admin-dragdrop.php';
require_once um_path . 'admin/core/um-admin-tracking.php';
require_once um_path . 'admin/core/um-admin-actions-user.php'; require_once um_path . 'admin/core/um-admin-actions-user.php';
require_once um_path . 'admin/core/um-admin-actions-modal.php'; require_once um_path . 'admin/core/um-admin-actions-modal.php';
require_once um_path . 'admin/core/um-admin-actions-fields.php'; require_once um_path . 'admin/core/um-admin-actions-fields.php';
@@ -60,8 +59,7 @@ class UM_Admin_API {
$this->access = new UM_Admin_Access(); $this->access = new UM_Admin_Access();
$this->builder = new UM_Admin_Builder(); $this->builder = new UM_Admin_Builder();
$this->dragdrop = new UM_Admin_DragDrop(); $this->dragdrop = new UM_Admin_DragDrop();
$this->tracking = new UM_Admin_Tracking();
if ( is_admin() && if ( is_admin() &&
current_user_can('manage_options') && current_user_can('manage_options') &&
isset($_REQUEST['um_adm_action']) && isset($_REQUEST['um_adm_action']) &&
+2 -2
View File
@@ -85,7 +85,7 @@
line-height: 2em; line-height: 2em;
} }
.um-account-name a:hover {color: #3ba1da !important} .um-account-name a:hover {color: #3ba1da}
/* /*
- Account nav - Account nav
@@ -105,7 +105,7 @@
} }
.um-account-nav a.current{ .um-account-nav a.current{
color: #3ba1da !important; color: #3ba1da;
font-weight: bold; font-weight: bold;
} }
+3 -3
View File
@@ -220,7 +220,7 @@
} }
.um-member-name a:hover { .um-member-name a:hover {
color: #3ba1da !important; color: #3ba1da;
} }
.um-member-tagline { .um-member-tagline {
@@ -320,7 +320,7 @@
.um-members-pagi span.current, .um-members-pagi span.current,
.um-members-pagi span.current:hover { .um-members-pagi span.current:hover {
background: #3ba1da !important; background: #3ba1da;
color: #fff !important; color: #fff !important;
} }
@@ -345,5 +345,5 @@
.um-members-pagi a:hover { .um-members-pagi a:hover {
text-decoration: none !important; text-decoration: none !important;
color: #3ba1da !important; color: #3ba1da;
} }
+4 -4
View File
@@ -67,7 +67,7 @@
vertical-align: middle; vertical-align: middle;
} }
.um-cover-add:hover { color: #3ba1da !important } .um-cover-add:hover { color: #3ba1da }
.um-cover-e { .um-cover-e {
text-align: center; text-align: center;
@@ -348,7 +348,7 @@ font-weight: normal;
} }
.um-profile-nav-item.active a { .um-profile-nav-item.active a {
background: #3BA1DA !important; background: #3ba1da;
color: #FFF!important; color: #FFF!important;
} }
@@ -398,7 +398,7 @@ font-weight: normal;
font-weight: 600; font-weight: 600;
margin: 0 20px; margin: 0 20px;
} }
.um-profile-subnav a.active {color: #3BA1DA !important} .um-profile-subnav a.active {color: #3ba1da}
.um-profile-subnav a:hover {color: #333} .um-profile-subnav a:hover {color: #333}
.um-profile-subnav span { .um-profile-subnav span {
@@ -466,7 +466,7 @@ font-weight: normal;
content: "•"; content: "•";
} }
.um-item-meta a {font-weight: bold;border-bottom: 1px solid #E0E0E0;color: #3BA1DA} .um-item-meta a {font-weight: bold;border-bottom: 1px solid #E0E0E0;color: #3ba1da}
.um-item-meta a:hover {border-bottom-color: #bbb} .um-item-meta a:hover {border-bottom-color: #bbb}
.um-load-items { .um-load-items {
+1 -46
View File
@@ -234,21 +234,6 @@ div.uimob340 .um-account-main {
box-sizing: border-box; box-sizing: border-box;
} }
div.uimob340 .um-account-main .um-provider {
padding: 15px 0 0 0;
}
div.uimob340 .um-account-main .um-left {
float: none;
display: block;
}
div.uimob340 .um-account-main .um-right {
float: none;
display: block;
margin-top: 10px;
}
div.uimob340 .um-account-tab { div.uimob340 .um-account-tab {
padding-bottom: 20px; padding-bottom: 20px;
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
@@ -471,21 +456,6 @@ div.uimob500 .um-account-main {
box-sizing: border-box; box-sizing: border-box;
} }
div.uimob500 .um-account-main .um-provider {
padding: 15px 0 0 0;
}
div.uimob500 .um-account-main .um-left {
float: none;
display: block;
}
div.uimob500 .um-account-main .um-right {
float: none;
display: block;
margin-top: 10px;
}
div.uimob500 .um-account-tab { div.uimob500 .um-account-tab {
padding-bottom: 20px; padding-bottom: 20px;
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
@@ -533,21 +503,6 @@ div.uimob800 .um-account-main {
max-width: 450px; max-width: 450px;
} }
div.uimob800 .um-account-main .um-provider {
padding: 15px 0 0 0;
}
div.uimob800 .um-account-main .um-left {
float: none;
display: block;
}
div.uimob800 .um-account-main .um-right {
float: none;
display: block;
margin-top: 10px;
}
div.uimob800 .um-account-side { div.uimob800 .um-account-side {
padding: 0; padding: 0;
width: 10%; width: 10%;
@@ -594,7 +549,7 @@ div.uimob800 .um-account-side li a span.um-account-icontip i {
div.uimob800 .um-account-side li a.current, div.uimob800 .um-account-side li a.current,
div.uimob800 .um-account-side li a.current:hover { div.uimob800 .um-account-side li a.current:hover {
background: #3ba1da !important; background: #3ba1da;
color: #fff !important; color: #fff !important;
} }
+1 -1
View File
File diff suppressed because one or more lines are too long
+4 -4
View File
@@ -12,7 +12,7 @@ print ".um-$form_id .um-member {
if ( isset( $css_card_thickness ) ) { if ( isset( $css_card_thickness ) ) {
print ".um-$form_id .um-member { print ".um-$form_id .um-member {
border-width: $css_card_thickness !important; border-width: $css_card_thickness;
}"; }";
} }
@@ -20,7 +20,7 @@ print ".um-$form_id .um-member {
if ($css_profile_card_text) { if ($css_profile_card_text) {
print ".um-$form_id .um-member-card * { print ".um-$form_id .um-member-card * {
color: $css_profile_card_text!important; color: $css_profile_card_text;
}"; }";
} }
@@ -28,7 +28,7 @@ print ".um-$form_id .um-member-card * {
if ($css_card_bordercolor) { if ($css_card_bordercolor) {
print ".um-$form_id .um-member { print ".um-$form_id .um-member {
border-color: $css_card_bordercolor!important; border-color: $css_card_bordercolor;
}"; }";
} }
@@ -36,7 +36,7 @@ print ".um-$form_id .um-member {
if ($css_img_bordercolor) { if ($css_img_bordercolor) {
print ".um-$form_id .um-member-photo img { print ".um-$form_id .um-member-photo img {
border-color: $css_img_bordercolor!important; border-color: $css_img_bordercolor;
}"; }";
} }
+15 -15
View File
@@ -63,46 +63,46 @@ print ".um-$form_id.um {
if ( $primary_btn_color ) { if ( $primary_btn_color ) {
print ".um-$form_id.um input[type=submit]:disabled:hover { print ".um-$form_id.um input[type=submit]:disabled:hover {
background: $primary_btn_color !important; background: $primary_btn_color;
}"; }";
print ".um-$form_id.um input[type=submit].um-button, print ".um-$form_id.um input[type=submit].um-button,
.um-$form_id.um input[type=submit].um-button:focus, .um-$form_id.um input[type=submit].um-button:focus,
.um-$form_id.um a.um-button { .um-$form_id.um a.um-button {
background: $primary_btn_color !important; background: $primary_btn_color;
}"; }";
} }
if ( $primary_btn_hover ) { if ( $primary_btn_hover ) {
print ".um-$form_id.um input[type=submit].um-button:hover, print ".um-$form_id.um input[type=submit].um-button:hover,
.um-$form_id.um a.um-button:hover { .um-$form_id.um a.um-button:hover {
background-color: $primary_btn_hover !important; background-color: $primary_btn_hover;
}"; }";
} }
if ( $primary_btn_text ) { if ( $primary_btn_text ) {
print ".um-$form_id.um .um-button { print ".um-$form_id.um .um-button {
color: $primary_btn_text !important; color: $primary_btn_text;
}"; }";
} }
if ( $secondary_btn_color ) { if ( $secondary_btn_color ) {
print ".um-$form_id.um .um-button.um-alt, print ".um-$form_id.um .um-button.um-alt,
.um-$form_id.um input[type=submit].um-button.um-alt { .um-$form_id.um input[type=submit].um-button.um-alt {
background: $secondary_btn_color !important; background: $secondary_btn_color;
}"; }";
} }
if ( $secondary_btn_hover ) { if ( $secondary_btn_hover ) {
print ".um-$form_id.um .um-button.um-alt:hover, print ".um-$form_id.um .um-button.um-alt:hover,
.um-$form_id.um input[type=submit].um-button.um-alt:hover{ .um-$form_id.um input[type=submit].um-button.um-alt:hover{
background: $secondary_btn_hover !important; background: $secondary_btn_hover;
}"; }";
} }
if ( $secondary_btn_text ) { if ( $secondary_btn_text ) {
print ".um-$form_id.um .um-button.um-alt, print ".um-$form_id.um .um-button.um-alt,
.um-$form_id.um input[type=submit].um-button.um-alt { .um-$form_id.um input[type=submit].um-button.um-alt {
color: $secondary_btn_text !important; color: $secondary_btn_text;
}"; }";
} }
@@ -134,7 +134,7 @@ print "
.select2-container .select2-choice, .select2-container .select2-choice,
.select2-container-multi .select2-choices .select2-container-multi .select2-choices
{ {
background-color: $form_bg_color !important; background-color: $form_bg_color;
} }
"; ";
} }
@@ -144,25 +144,25 @@ print "
.um-$form_id.um .um-form ::-webkit-input-placeholder .um-$form_id.um .um-form ::-webkit-input-placeholder
{ {
color: $form_placeholder !important; color: $form_placeholder;
opacity: 1 !important; opacity: 1 !important;
} }
.um-$form_id.um .um-form ::-moz-placeholder .um-$form_id.um .um-form ::-moz-placeholder
{ {
color: $form_placeholder !important; color: $form_placeholder;
opacity: 1 !important; opacity: 1 !important;
} }
.um-$form_id.um .um-form ::-moz-placeholder .um-$form_id.um .um-form ::-moz-placeholder
{ {
color: $form_placeholder !important; color: $form_placeholder;
opacity: 1 !important; opacity: 1 !important;
} }
.um-$form_id.um .um-form ::-ms-input-placeholder .um-$form_id.um .um-form ::-ms-input-placeholder
{ {
color: $form_placeholder !important; color: $form_placeholder;
opacity: 1 !important; opacity: 1 !important;
} }
@@ -170,7 +170,7 @@ print "
.select2-default *, .select2-default *,
.select2-container-multi .select2-choices .select2-search-field input .select2-container-multi .select2-choices .select2-search-field input
{ {
color: $form_placeholder !important; color: $form_placeholder;
} }
"; ";
@@ -183,7 +183,7 @@ print "
.select2-search:before, .select2-search:before,
.select2-search-choice-close:before .select2-search-choice-close:before
{ {
color: $form_icon_color !important; color: $form_icon_color;
} }
"; ";
} }
@@ -192,7 +192,7 @@ if ( $form_asterisk_color ) {
print " print "
.um-$form_id.um span.um-req .um-$form_id.um span.um-req
{ {
color: $form_asterisk_color !important; color: $form_asterisk_color;
} }
"; ";
} }
+1 -1
View File
@@ -64,7 +64,7 @@ print "
if ( $main_bg ) { if ( $main_bg ) {
print ".um-$form_id.um-profile { print ".um-$form_id.um-profile {
background-color: $main_bg !important; background-color: $main_bg;
}"; }";
} }
+4 -4
View File
@@ -15,7 +15,7 @@ function um_conditional(){
if ( action0 == 'show' && field0 == live_field ) { if ( action0 == 'show' && field0 == live_field ) {
if ( operator0 == 'empty' ) { if ( operator0 == 'empty' ) {
if ( live_value == '' ) { if ( !live_value || live_value == '' ) {
jQuery(this).fadeIn(); jQuery(this).fadeIn();
} else { } else {
jQuery(this).hide(); jQuery(this).hide();
@@ -23,7 +23,7 @@ function um_conditional(){
} }
if ( operator0 == 'not empty' ) { if ( operator0 == 'not empty' ) {
if ( live_value != '' ) { if ( live_value && live_value != '' ) {
jQuery(this).fadeIn(); jQuery(this).fadeIn();
} else { } else {
jQuery(this).hide(); jQuery(this).hide();
@@ -77,7 +77,7 @@ function um_conditional(){
if ( action0 == 'hide' && field0 == live_field ) { if ( action0 == 'hide' && field0 == live_field ) {
if ( operator0 == 'empty' ) { if ( operator0 == 'empty' ) {
if ( live_value == '' ) { if ( !live_value || live_value == '' ) {
jQuery(this).hide(); jQuery(this).hide();
} else { } else {
jQuery(this).fadeIn(); jQuery(this).fadeIn();
@@ -85,7 +85,7 @@ function um_conditional(){
} }
if ( operator0 == 'not empty' ) { if ( operator0 == 'not empty' ) {
if ( live_value != '' ) { if ( live_value && live_value != '' ) {
jQuery(this).hide(); jQuery(this).hide();
} else { } else {
jQuery(this).fadeIn(); jQuery(this).fadeIn();
+1 -1
View File
File diff suppressed because one or more lines are too long
+15 -15
View File
@@ -162,6 +162,8 @@
<?php echo $output; ?> <?php echo $output; ?>
<?php do_action('um_after_account_delete'); ?>
<div class="um-col-alt um-col-alt-b"> <div class="um-col-alt um-col-alt-b">
<div class="um-left"><input type="submit" name="um_account_submit" id="um_account_submit" value="<?php _e('Delete Account','ultimatemember'); ?>" class="um-button" /></div> <div class="um-left"><input type="submit" name="um_account_submit" id="um_account_submit" value="<?php _e('Delete Account','ultimatemember'); ?>" class="um-button" /></div>
<?php do_action('um_after_account_delete_button'); ?> <?php do_action('um_after_account_delete_button'); ?>
@@ -171,9 +173,7 @@
<?php <?php
} }
do_action('um_after_account_delete');
} }
/*** /***
@@ -192,6 +192,8 @@
<?php echo $output; ?> <?php echo $output; ?>
<?php do_action('um_after_account_privacy'); ?>
<div class="um-col-alt um-col-alt-b"> <div class="um-col-alt um-col-alt-b">
<div class="um-left"><input type="submit" name="um_account_submit" id="um_account_submit" value="<?php _e('Update Privacy','ultimatemember'); ?>" class="um-button" /></div> <div class="um-left"><input type="submit" name="um_account_submit" id="um_account_submit" value="<?php _e('Update Privacy','ultimatemember'); ?>" class="um-button" /></div>
<?php do_action('um_after_account_privacy_button'); ?> <?php do_action('um_after_account_privacy_button'); ?>
@@ -201,9 +203,7 @@
<?php <?php
} }
do_action('um_after_account_privacy');
} }
/*** /***
@@ -222,6 +222,8 @@
<?php echo $output; ?> <?php echo $output; ?>
<?php do_action('um_after_account_general'); ?>
<div class="um-col-alt um-col-alt-b"> <div class="um-col-alt um-col-alt-b">
<div class="um-left"><input type="submit" name="um_account_submit" id="um_account_submit" value="<?php _e('Update Account','ultimatemember'); ?>" class="um-button" /></div> <div class="um-left"><input type="submit" name="um_account_submit" id="um_account_submit" value="<?php _e('Update Account','ultimatemember'); ?>" class="um-button" /></div>
<?php do_action('um_after_account_general_button'); ?> <?php do_action('um_after_account_general_button'); ?>
@@ -231,9 +233,7 @@
<?php <?php
} }
do_action('um_after_account_general');
} }
/*** /***
@@ -252,6 +252,8 @@
<?php echo $output; ?> <?php echo $output; ?>
<?php do_action('um_after_account_password'); ?>
<div class="um-col-alt um-col-alt-b"> <div class="um-col-alt um-col-alt-b">
<div class="um-left"><input type="submit" name="um_account_submit" id="um_account_submit" value="<?php _e('Update Password','ultimatemember'); ?>" class="um-button" /></div> <div class="um-left"><input type="submit" name="um_account_submit" id="um_account_submit" value="<?php _e('Update Password','ultimatemember'); ?>" class="um-button" /></div>
<?php do_action('um_after_account_password_button'); ?> <?php do_action('um_after_account_password_button'); ?>
@@ -261,9 +263,7 @@
<?php <?php
} }
do_action('um_after_account_password');
} }
/*** /***
@@ -282,6 +282,8 @@
<?php echo $output; ?> <?php echo $output; ?>
<?php do_action('um_after_account_notifications'); ?>
<div class="um-col-alt um-col-alt-b"> <div class="um-col-alt um-col-alt-b">
<div class="um-left"><input type="submit" name="um_account_submit" id="um_account_submit" value="<?php _e('Update Notifications','ultimatemember'); ?>" class="um-button" /></div> <div class="um-left"><input type="submit" name="um_account_submit" id="um_account_submit" value="<?php _e('Update Notifications','ultimatemember'); ?>" class="um-button" /></div>
<?php do_action('um_after_account_notifications_button'); ?> <?php do_action('um_after_account_notifications_button'); ?>
@@ -291,9 +293,7 @@
<?php <?php
} }
do_action('um_after_account_notifications');
} }
/*** /***
+6
View File
@@ -228,6 +228,12 @@
switch( $array['validate'] ) { switch( $array['validate'] ) {
case 'numeric':
if ( $args[$key] && !is_numeric( $args[$key] ) ) {
$ultimatemember->form->add_error($key, __('Please enter numbers only in this field','ultimatemember') );
}
break;
case 'phone_number': case 'phone_number':
if ( !$ultimatemember->validation->is_phone_number( $args[$key] ) ) { if ( !$ultimatemember->validation->is_phone_number( $args[$key] ) ) {
$ultimatemember->form->add_error($key, __('Please enter a valid phone number','ultimatemember') ); $ultimatemember->form->add_error($key, __('Please enter a valid phone number','ultimatemember') );
+4 -4
View File
@@ -76,10 +76,10 @@
$form_timestamp = trim($_POST['timestamp']); $form_timestamp = trim($_POST['timestamp']);
$live_timestamp = current_time( 'timestamp' ); $live_timestamp = current_time( 'timestamp' );
if ( $form_timestamp == '' ) if ( $form_timestamp == '' && um_get_option('enable_timebot') == 1 )
wp_die( __('Hello, spam bot!') ); wp_die( __('Hello, spam bot!') );
if ( $live_timestamp - $form_timestamp < 3 ) if ( $live_timestamp - $form_timestamp < 3 && um_get_option('enable_timebot') == 1 )
wp_die( __('Whoa, slow down! You\'re seeing this message because you tried to submit a form too fast and we think you might be a spam bot. If you are a real human being please wait a few seconds before submitting the form. Thanks!') ); wp_die( __('Whoa, slow down! You\'re seeing this message because you tried to submit a form too fast and we think you might be a spam bot. If you are a real human being please wait a few seconds before submitting the form. Thanks!') );
if ( strlen(trim( $_POST['username_b'] ) ) == 0 ) { if ( strlen(trim( $_POST['username_b'] ) ) == 0 ) {
@@ -107,10 +107,10 @@
$form_timestamp = trim($_POST['timestamp']); $form_timestamp = trim($_POST['timestamp']);
$live_timestamp = current_time( 'timestamp' ); $live_timestamp = current_time( 'timestamp' );
if ( $form_timestamp == '' ) if ( $form_timestamp == '' && um_get_option('enable_timebot') == 1 )
wp_die( __('Hello, spam bot!') ); wp_die( __('Hello, spam bot!') );
if ( $live_timestamp - $form_timestamp < 3 ) if ( $live_timestamp - $form_timestamp < 3 && um_get_option('enable_timebot') == 1 )
wp_die( __('Whoa, slow down! You\'re seeing this message because you tried to submit a form too fast and we think you might be a spam bot. If you are a real human being please wait a few seconds before submitting the form. Thanks!') ); wp_die( __('Whoa, slow down! You\'re seeing this message because you tried to submit a form too fast and we think you might be a spam bot. If you are a real human being please wait a few seconds before submitting the form. Thanks!') );
if ( !$args['user_password'] ) { if ( !$args['user_password'] ) {
+7
View File
@@ -21,6 +21,7 @@ class UM_Cron {
public function schedule_Events() { public function schedule_Events() {
$this->weekly_events(); $this->weekly_events();
$this->daily_events(); $this->daily_events();
$this->twicedaily_events();
$this->hourly_events(); $this->hourly_events();
} }
@@ -36,6 +37,12 @@ class UM_Cron {
} }
} }
private function twicedaily_events() {
if ( ! wp_next_scheduled( 'um_twicedaily_scheduled_events' ) ) {
wp_schedule_event( current_time( 'timestamp' ), 'twicedaily', 'um_twicedaily_scheduled_events' );
}
}
private function hourly_events() { private function hourly_events() {
if ( ! wp_next_scheduled( 'um_hourly_scheduled_events' ) ) { if ( ! wp_next_scheduled( 'um_hourly_scheduled_events' ) ) {
wp_schedule_event( current_time( 'timestamp' ), 'hourly', 'um_hourly_scheduled_events' ); wp_schedule_event( current_time( 'timestamp' ), 'hourly', 'um_hourly_scheduled_events' );
+17 -5
View File
@@ -378,6 +378,8 @@ class UM_Files {
delete_user_meta( $user_id, $type ); delete_user_meta( $user_id, $type );
do_action("um_after_remove_{$type}", $user_id);
$dir = $this->upload_basedir . $user_id . '/'; $dir = $this->upload_basedir . $user_id . '/';
$prefix = $type; $prefix = $type;
chdir($dir); chdir($dir);
@@ -417,16 +419,23 @@ class UM_Files {
} }
/*** /***
*** @new user upload *** @make a user folder for uploads
***/ ***/
function new_user_upload( $user_id, $source, $key ) { function new_user( $user_id ) {
// if he does not have uploads dir yet
if ( !file_exists( $this->upload_basedir . $user_id . '/' ) ) { if ( !file_exists( $this->upload_basedir . $user_id . '/' ) ) {
$old = umask(0); $old = umask(0);
@mkdir( $this->upload_basedir . $user_id . '/' , 0755, true); @mkdir( $this->upload_basedir . $user_id . '/' , 0755, true);
umask($old); umask($old);
} }
}
/***
*** @new user upload
***/
function new_user_upload( $user_id, $source, $key ) {
// if he does not have uploads dir yet
$this->new_user( $user_id );
// name and extension stuff // name and extension stuff
$source_name = basename( $source ); $source_name = basename( $source );
@@ -443,7 +452,10 @@ class UM_Files {
$name = str_replace( $ext, '', $source_name ); $name = str_replace( $ext, '', $source_name );
$filename = $name . $ext; $filename = $name . $ext;
// copy file // copy & overwrite file
if ( file_exists( $this->upload_basedir . $user_id . '/' . $filename ) ) {
unlink( $this->upload_basedir . $user_id . '/' . $filename );
}
copy( $source, $this->upload_basedir . $user_id . '/' . $filename ); copy( $source, $this->upload_basedir . $user_id . '/' . $filename );
// thumbs // thumbs
+33
View File
@@ -0,0 +1,33 @@
<?php
/***
*** @add-ons panel
***/
add_filter("redux/options/um_options/sections", 'um_add_addons_settings_tab', 8 );
function um_add_addons_settings_tab($sections){
global $ultimatemember;
foreach( $ultimatemember->addons as $addon_id => $addon ) {
$array[] = array(
'id' => 'addon_' . $addon_id,
'type' => 'switch',
'title' => $addon[0],
'desc' => $addon[1],
'on' => __('Activated','ultimatemember'),
'off' => __('Deactivated','ultimatemember'),
);
}
$array = apply_filters('um_builtin_addons_options', $array );
$sections[] = array(
'icon' => 'um-faicon-plug',
'title' => __( 'Add ons','ultimatemember'),
'fields' => $array
);
return $sections;
}
+2 -2
View File
@@ -78,10 +78,10 @@ class UM_Form {
$form_timestamp = trim($_POST['timestamp']); $form_timestamp = trim($_POST['timestamp']);
$live_timestamp = current_time( 'timestamp' ); $live_timestamp = current_time( 'timestamp' );
if ( $form_timestamp == '' ) if ( $form_timestamp == '' && um_get_option('enable_timebot') == 1 )
wp_die( __('Hello, spam bot!') ); wp_die( __('Hello, spam bot!') );
if ( $live_timestamp - $form_timestamp < 3 ) if ( $live_timestamp - $form_timestamp < 6 && um_get_option('enable_timebot') == 1 )
wp_die( __('Whoa, slow down! You\'re seeing this message because you tried to submit a form too fast and we think you might be a spam bot. If you are a real human being please wait a few seconds before submitting the form. Thanks!') ); wp_die( __('Whoa, slow down! You\'re seeing this message because you tried to submit a form too fast and we think you might be a spam bot. If you are a real human being please wait a few seconds before submitting the form. Thanks!') );
} }
+1 -1
View File
@@ -60,7 +60,7 @@ class UM_Permalinks {
function activate_account_via_email_link(){ function activate_account_via_email_link(){
global $ultimatemember; global $ultimatemember;
if ( isset($_REQUEST['act']) && $_REQUEST['act'] == 'activate_via_email' && isset($_REQUEST['hash']) && strlen($_REQUEST['hash']) == 30 && if ( isset($_REQUEST['act']) && $_REQUEST['act'] == 'activate_via_email' && isset($_REQUEST['hash']) && strlen($_REQUEST['hash']) == 40 &&
isset($_REQUEST['user_id']) && is_numeric($_REQUEST['user_id']) ) { // valid token isset($_REQUEST['user_id']) && is_numeric($_REQUEST['user_id']) ) { // valid token
um_fetch_user( $_REQUEST['user_id'] ); um_fetch_user( $_REQUEST['user_id'] );
+10
View File
@@ -4,6 +4,8 @@ class UM_Setup {
function __construct() { function __construct() {
add_action('init', array(&$this, 'install_basics'), 9);
add_action('init', array(&$this, 'install_default_forms'), 9); add_action('init', array(&$this, 'install_default_forms'), 9);
add_action('init', array(&$this, 'install_default_roles'), 9); add_action('init', array(&$this, 'install_default_roles'), 9);
@@ -226,6 +228,14 @@ class UM_Setup {
} }
} }
/***
*** @Basics
***/
function install_basics() {
if ( !get_option('__ultimatemember_sitekey') )
update_option('__ultimatemember_sitekey', str_replace( array('http://','https://'), '', sanitize_user( get_bloginfo('url') ) ) . '-' . wp_generate_password( 20, false ) );
}
/*** /***
*** @Default Forms *** @Default Forms
***/ ***/
+7 -1
View File
@@ -252,7 +252,8 @@ class UM_Shortcodes {
$pattern_array = array( $pattern_array = array(
'{first_name}', '{first_name}',
'{last_name}', '{last_name}',
'{display_name}' '{display_name}',
'{user_avatar_small}',
); );
$pattern_array = apply_filters('um_allowed_user_tags_patterns', $pattern_array); $pattern_array = apply_filters('um_allowed_user_tags_patterns', $pattern_array);
@@ -265,6 +266,11 @@ class UM_Shortcodes {
$usermeta = str_replace('{','',$pattern); $usermeta = str_replace('{','',$pattern);
$usermeta = str_replace('}','',$usermeta); $usermeta = str_replace('}','',$usermeta);
if ( $usermeta == 'user_avatar_small' ) {
$value = um_user('profile_photo', 40);
$str = preg_replace('/'.$pattern.'/', $value , $str );
}
if ( um_user( $usermeta ) ){ if ( um_user( $usermeta ) ){
$str = preg_replace('/'.$pattern.'/', um_user($usermeta) , $str ); $str = preg_replace('/'.$pattern.'/', um_user($usermeta) , $str );
} }
@@ -1,6 +1,6 @@
<?php <?php
class UM_Admin_Tracking { class UM_Tracking {
private $data; private $data;
@@ -17,6 +17,8 @@ class UM_Admin_Tracking {
***/ ***/
private function setup_data() { private function setup_data() {
global $ultimatemember;
$data = array(); $data = array();
// Retrieve current theme info // Retrieve current theme info
@@ -64,6 +66,12 @@ class UM_Admin_Tracking {
$data['multisite'] = ( is_multisite() ) ? 1 : 0; $data['multisite'] = ( is_multisite() ) ? 1 : 0;
if ( !get_option('__ultimatemember_sitekey') ) {
$ultimatemember->setup->install_basics();
}
$data['unique_sitekey'] = get_option('__ultimatemember_sitekey');
$this->data = $data; $this->data = $data;
} }
@@ -74,14 +82,6 @@ class UM_Admin_Tracking {
private function tracking_allowed() { private function tracking_allowed() {
if ( !um_get_option('allow_tracking') ) if ( !um_get_option('allow_tracking') )
return 0; return 0;
if( stristr( network_site_url( '/' ), 'dev' ) !== false ||
stristr( network_site_url( '/' ), 'localhost' ) !== false ||
stristr( network_site_url( '/' ), ':8888' ) !== false // This is common with MAMP on OS X
) {
return 0;
}
return 1; return 1;
} }
@@ -100,9 +100,9 @@ class UM_Admin_Tracking {
if( ! $this->tracking_allowed() && ! $override ) if( ! $this->tracking_allowed() && ! $override )
return; return;
// Send a maximum of once per week // Send a maximum of once per period
$last_send = $this->get_last_send(); $last_send = $this->get_last_send();
if( $last_send && $last_send > strtotime( '-1 week' ) ) if( $last_send && $last_send > strtotime( '-1 day' ) )
return; return;
$this->setup_data(); $this->setup_data();
@@ -118,14 +118,13 @@ class UM_Admin_Tracking {
) ); ) );
update_option( 'um_tracking_last_send', time() ); update_option( 'um_tracking_last_send', time() );
} }
/*** /***
*** @run a scheduled report *** @run a scheduled report
***/ ***/
private function schedule_send() { private function schedule_send() {
add_action( 'um_weekly_scheduled_events', array( $this, 'send_checkin' ) ); add_action( 'um_daily_scheduled_events', array( $this, 'send_checkin' ) );
} }
/*** /***
+1 -1
View File
@@ -3,7 +3,7 @@
Plugin Name: Ultimate Member Plugin Name: Ultimate Member
Plugin URI: http://ultimatemember.com/ Plugin URI: http://ultimatemember.com/
Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
Version: 1.0.71 Version: 1.0.76
Author: Ultimate Member Author: Ultimate Member
Author URI: http://ultimatemember.com/ Author URI: http://ultimatemember.com/
*/ */
+28 -1
View File
@@ -7,7 +7,7 @@ Tags: access control, author, authors, author profile, comments, community, comm
Requires at least: 4.1 Requires at least: 4.1
Tested up to: 4.1.1 Tested up to: 4.1.1
Stable Tag: 1.0.71 Stable Tag: 1.0.76
License: GNU Version 2 or Any Later Version License: GNU Version 2 or Any Later Version
@@ -189,6 +189,33 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
== Changelog == == Changelog ==
= 1.0.76: March 7, 2015 =
* New: added {user_avatar_small} tag to display user photo in menu (requires extra css work)
* Tweak: Removed !important css rules from colors and backgrounds
* Fixed: issue with content block field
= 1.0.75: March 5, 2015 =
* New: improved & modern html e-mail templates
* New: addon to transfer BuddyPress profile photos to Ultimate Member (user request)
* New: added option to turn off time bot feature (fixes conflict with plugins)
* New: added built-in addons support
* Tweak: improved backend design and css
= 1.0.74: March 4, 2015 =
* Fixed: bug with numeric validation for a field
* Fixed: bug with conditional logic rules with checkbox
= 1.0.73: March 3, 2015 =
* Tweak: general code improvements
= 1.0.72: March 2, 2015 =
* Fixed: bug with e-mail activation since last update
= 1.0.71: March 2, 2015 = = 1.0.71: March 2, 2015 =
* Fixed: issue with password reset link * Fixed: issue with password reset link
+10 -10
View File
@@ -1,23 +1,23 @@
<html> <html>
<body> <body style="background: #f2f2f2;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;">
<div style="max-width: 600px;margin:20px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;"> <div style="max-width: 560px;padding: 20px;background: #ffffff;border-radius: 5px;margin:40px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;">
<div style="background: #3ba1da;padding: 0 0 0 20px;color: #fff;font-weight: normal;border-radius: 5px"> <div style="color: #444444;font-weight: normal;">
<div style="float:left;padding: 20px 0;">{site_name}</div> <div style="text-align: center;font-weight:600;font-size:26px;padding: 10px 0;border-bottom: solid 3px #eeeeee;">{site_name}</div>
<div style="float:right;padding: 12px 12px 0 0;"><a href="{user_profile_link}" style="text-decoration: none;vertical-align: middle;color: #fff;"><img src="{user_avatar_url}" width="32" height="32" alt="" style="border-radius: 3px;border: 2px solid #fff;background: #fff;vertical-align: middle;margin-right: 10px;" />{display_name}</a></div>
<div style="clear:both"></div> <div style="clear:both"></div>
</div> </div>
<div style="padding: 0 30px 30px 30px;border-bottom: 4px double #ccc;"> <div style="padding: 0 30px 30px 30px;border-bottom: 3px solid #eeeeee;">
<div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;"><span style="display: block;color:#333"><strong>Congratulations!</strong> Your {site_name} account has been approved!</span></div> <div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;">Thank you for signing up!<span style="display: block;">Your account is now approved.</span></div>
<div style="padding: 10px 0 50px 0;text-align: center;"><a href="{login_url}" style="background: #3ba1da;color: #fff;padding: 12px 30px;text-decoration: none;border-radius: 3px;letter-spacing: 1px;border: 4px double #fff;">Login to our site</a></div> <div style="padding: 10px 0 50px 0;text-align: center;"><a href="{login_url}" style="background: #555555;color: #fff;padding: 12px 30px;text-decoration: none;border-radius: 3px;letter-spacing: 0.3px;">Login to our site</a></div>
<div style="border: 1px solid #eee;padding: 0 0 15px 0;background: #fcfcfc;border-radius: 0 0 3px 3px;"> <div style="padding: 0 0 15px 0;">
<div style="background: #eee;color: #444;padding: 12px 15px; border-radius: 3px 3px 0 0;font-weight: bold;font-size: 16px;">Account Information</div> <div style="background: #eee;color: #444;padding: 12px 15px; border-radius: 3px;font-weight: bold;font-size: 16px;">Account Information</div>
<div style="padding: 10px 15px 0 15px;color: #333;"><span style="color:#999">Your account e-mail:</span> <span style="font-weight:bold">{email}</span></div> <div style="padding: 10px 15px 0 15px;color: #333;"><span style="color:#999">Your account e-mail:</span> <span style="font-weight:bold">{email}</span></div>
<div style="padding: 10px 15px 0 15px;color: #333;"><span style="color:#999">Your account username:</span> <span style="font-weight:bold">{username}</span></div> <div style="padding: 10px 15px 0 15px;color: #333;"><span style="color:#999">Your account username:</span> <span style="font-weight:bold">{username}</span></div>
+9 -9
View File
@@ -1,21 +1,21 @@
<html> <html>
<body> <body style="background: #f2f2f2;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;">
<div style="max-width: 600px;margin:20px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;"> <div style="max-width: 560px;padding: 20px;background: #ffffff;border-radius: 5px;margin:40px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;">
<div style="background: #3ba1da;padding: 0 0 0 20px;color: #fff;font-weight: normal;border-radius: 5px"> <div style="color: #444444;font-weight: normal;">
<div style="float:left;padding: 20px 0;">{site_name}</div> <div style="text-align: center;font-weight:600;font-size:26px;padding: 10px 0;border-bottom: solid 3px #eeeeee;">{site_name}</div>
<div style="float:right;padding: 12px 12px 0 0;"><a href="{user_profile_link}" style="text-decoration: none;vertical-align: middle;color: #fff;"><img src="{user_avatar_url}" width="32" height="32" alt="" style="border-radius: 3px;border: 2px solid #fff;background: #fff;vertical-align: middle;margin-right: 10px;" />{display_name}</a></div>
<div style="clear:both"></div> <div style="clear:both"></div>
</div> </div>
<div style="padding: 0 30px 30px 30px;border-bottom: 4px double #ccc;"> <div style="padding: 0 30px 30px 30px;border-bottom: 3px solid #eeeeee;">
<div style="padding: 30px 0;font-size: 20px;text-align: center;line-height: 32px;color: #333;">You recently changed the password associated with your {site_name} account.</div> <div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;">You recently changed the password associated with your account.</div>
<div style="padding: 10px 0 50px 0;text-align: center;"><a href="{password_reset_link}" style="background: #3ba1da;color: #fff;padding: 12px 30px;text-decoration: none;border-radius: 3px;letter-spacing: 1px;border: 4px double #fff;">Go to your Account</a></div> <div style="padding: 10px 0 50px 0;text-align: center;"><a href="{user_account_link}" style="background: #555555;color: #fff;padding: 12px 30px;text-decoration: none;border-radius: 3px;letter-spacing: 0.3px;">Go to your Account</a></div>
<div style="border: 1px solid #ddd;padding: 15px;background: #eee;border-radius: 3px;text-align: center;">If you did not make this change and believe your account has been compromised, please <a href="mailto:{admin_email}" style="color: #3ba1da;">contact us</a> immediately.</div> <div style="padding: 15px;background: #eee;border-radius: 3px;text-align: center;">If you did not make this change and believe your account has been compromised, please <a href="mailto:{admin_email}" style="color: #3ba1da;text-decoration: none;">contact us</a> ASAP.</div>
</div> </div>
+9 -9
View File
@@ -1,21 +1,21 @@
<html> <html>
<body> <body style="background: #f2f2f2;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;">
<div style="max-width: 600px;margin:20px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;"> <div style="max-width: 560px;padding: 20px;background: #ffffff;border-radius: 5px;margin:40px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;">
<div style="background: #3ba1da;padding: 0 0 0 20px;color: #fff;font-weight: normal;border-radius: 5px"> <div style="color: #444444;font-weight: normal;">
<div style="float:left;padding: 20px 0;">{site_name}</div> <div style="text-align: center;font-weight:600;font-size:26px;padding: 10px 0;border-bottom: solid 3px #eeeeee;">{site_name}</div>
<div style="float:right;padding: 12px 12px 0 0;"><a href="{user_profile_link}" style="text-decoration: none;vertical-align: middle;color: #fff;"><img src="{user_avatar_url}" width="32" height="32" alt="" style="border-radius: 3px;border: 2px solid #fff;background: #fff;vertical-align: middle;margin-right: 10px;" />{display_name}</a></div>
<div style="clear:both"></div> <div style="clear:both"></div>
</div> </div>
<div style="padding: 0 30px 30px 30px;border-bottom: 4px double #ccc;"> <div style="padding: 0 30px 30px 30px;border-bottom: 3px solid #eeeeee;">
<div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;">Thank you for signing up with {site_name}!<span style="display: block;color:#333">Please click the following link to activate your account.</span></div> <div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;">Thank you for signing up!<span style="display: block;">Please click the following link to activate your account.</span></div>
<div style="padding: 10px 0 50px 0;text-align: center;"><a href="{account_activation_link}" style="background: #3ba1da;color: #fff;padding: 12px 30px;text-decoration: none;border-radius: 3px;letter-spacing: 1px;border: 4px double #fff;">Activate your Account</a></div> <div style="padding: 10px 0 50px 0;text-align: center;"><a href="{account_activation_link}" style="background: #555555;color: #fff;padding: 12px 30px;text-decoration: none;border-radius: 3px;letter-spacing: 0.3px;">Activate your Account</a></div>
<div style="border: 1px solid #ddd;padding: 15px;background: #eee;border-radius: 3px;text-align: center;">Need help? <a href="mailto:{admin_email}" style="color: #3ba1da;">contact us</a> today.</div> <div style="padding: 15px;background: #eee;border-radius: 3px;text-align: center;">Need help? <a href="mailto:{admin_email}" style="color: #3ba1da;text-decoration: none;">contact us</a> today.</div>
</div> </div>
+9 -11
View File
@@ -1,21 +1,19 @@
<html> <html>
<body> <body style="background: #f2f2f2;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;">
<div style="max-width: 600px;margin:20px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;"> <div style="max-width: 560px;padding: 20px;background: #ffffff;border-radius: 5px;margin:40px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;">
<div style="background: #3ba1da;padding: 0 0 0 20px;color: #fff;font-weight: normal;border-radius: 5px"> <div style="color: #444444;font-weight: normal;">
<div style="float:left;padding: 20px 0;">{site_name}</div> <div style="text-align: center;font-weight:600;font-size:26px;padding: 10px 0;border-bottom: solid 3px #eeeeee;">{site_name}</div>
<div style="float:right;padding: 12px 12px 0 0;"><a href="{user_profile_link}" style="text-decoration: none;vertical-align: middle;color: #fff;"><img src="{user_avatar_url}" width="32" height="32" alt="" style="border-radius: 3px;border: 2px solid #fff;background: #fff;vertical-align: middle;margin-right: 10px;" />{display_name}</a></div>
<div style="clear:both"></div> <div style="clear:both"></div>
</div> </div>
<div style="padding: 0 30px 30px 30px;border-bottom: 4px double #ccc;"> <div style="padding: 0 30px 30px 30px;border-bottom: 3px solid #eeeeee;">
<div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;"><span style="display: block;color:#333">This is an automated email to let you know your account has been deleted.</span></div> <div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;">Your account is now removed.<span style="display: block;">All your personal details and uploads have been removed.</span></div>
<div style="padding: 0 0 30px 0; font-size: 16px;text-align: center;line-height: 28px;">All of your personal information has been permanently deleted and you will no longer be able to login to {site_name}.</div> <div style="padding: 15px;background: #eee;border-radius: 3px;text-align: center;">If your account has been deleted by accident please <a href="mailto:{admin_email}" style="color: #3ba1da;text-decoration: none">contact us</a>.</div>
<div style="border: 1px solid #ddd;padding: 15px;background: #eee;border-radius: 3px;text-align: center;">If your account has been deleted by accident please <a href="mailto:{admin_email}" style="color: #3ba1da;">contact us</a> immediately.</div>
</div> </div>
+9 -9
View File
@@ -1,19 +1,19 @@
<html> <html>
<body> <body style="background: #f2f2f2;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;">
<div style="max-width: 600px;margin:20px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;"> <div style="max-width: 560px;padding: 20px;background: #ffffff;border-radius: 5px;margin:40px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;">
<div style="background: #3ba1da;padding: 0 0 0 20px;color: #fff;font-weight: normal;border-radius: 5px"> <div style="color: #444444;font-weight: normal;">
<div style="float:left;padding: 20px 0;">{site_name}</div> <div style="text-align: center;font-weight:600;font-size:26px;padding: 10px 0;border-bottom: solid 3px #eeeeee;">{site_name}</div>
<div style="float:right;padding: 12px 12px 0 0;"><a href="{user_profile_link}" style="text-decoration: none;vertical-align: middle;color: #fff;"><img src="{user_avatar_url}" width="32" height="32" alt="" style="border-radius: 3px;border: 2px solid #fff;background: #fff;vertical-align: middle;margin-right: 10px;" />{display_name}</a></div>
<div style="clear:both"></div> <div style="clear:both"></div>
</div> </div>
<div style="padding: 0 30px 30px 30px;border-bottom: 4px double #ccc;"> <div style="padding: 0 30px 30px 30px;border-bottom: 3px solid #eeeeee;">
<div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;"><span style="display: block;color:#333">This is an automated email to let you know your {site_name} account has been deactivated.</span></div> <div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;">Your account is now deactivated.</div>
<div style="border: 1px solid #ddd;padding: 15px;background: #eee;border-radius: 3px;text-align: center;">If you would like your account to be re-activated please <a href="mailto:{admin_email}" style="color: #3ba1da;">contact us</a>.</div> <div style="padding: 15px;background: #eee;border-radius: 3px;text-align: center;">If you want your account to be re-activated, please <a href="mailto:{admin_email}" style="color: #3ba1da;text-decoration: none">contact us</a>.</div>
</div> </div>
+9 -9
View File
@@ -1,19 +1,19 @@
<html> <html>
<body> <body style="background: #f2f2f2;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;">
<div style="max-width: 600px;margin:20px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;"> <div style="max-width: 560px;padding: 20px;background: #ffffff;border-radius: 5px;margin:40px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;">
<div style="background: #3ba1da;padding: 0 0 0 20px;color: #fff;font-weight: normal;border-radius: 5px"> <div style="color: #444444;font-weight: normal;">
<div style="float:left;padding: 20px 0;">{site_name}</div> <div style="text-align: center;font-weight:600;font-size:26px;padding: 10px 0;border-bottom: solid 3px #eeeeee;">{site_name}</div>
<div style="float:right;padding: 12px 12px 0 0;"><a href="{user_profile_link}" style="text-decoration: none;vertical-align: middle;color: #fff;"><img src="{user_avatar_url}" width="32" height="32" alt="" style="border-radius: 3px;border: 2px solid #fff;background: #fff;vertical-align: middle;margin-right: 10px;" />{display_name}</a></div>
<div style="clear:both"></div> <div style="clear:both"></div>
</div> </div>
<div style="padding: 0 30px 30px 30px;border-bottom: 4px double #ccc;"> <div style="padding: 0 30px 30px 30px;border-bottom: 3px solid #eeeeee;">
<div style="padding: 30px 0;font-size: 20px;text-align: center;line-height: 32px;color: #333;">Thank you for signing up with {site_name}! Your account has to be manually reviewed before you can login.</div> <div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;">Thank you for signing up!<span style="display: block;">Your account has to be manually reviewed.</span></div>
<div style="border: 1px solid #ddd;padding: 15px;background: #eee;border-radius: 3px;text-align: center;">Please allow us some time to process your request and review your information.</div> <div style="padding: 15px;background: #eee;border-radius: 3px;text-align: center;">Please allow us some time to process your request and review your information.</div>
</div> </div>
+9 -9
View File
@@ -1,19 +1,19 @@
<html> <html>
<body> <body style="background: #f2f2f2;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;">
<div style="max-width: 600px;margin:20px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;"> <div style="max-width: 560px;padding: 20px;background: #ffffff;border-radius: 5px;margin:40px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;">
<div style="background: #3ba1da;padding: 0 0 0 20px;color: #fff;font-weight: normal;border-radius: 5px"> <div style="color: #444444;font-weight: normal;">
<div style="float:left;padding: 20px 0;">{site_name}</div> <div style="text-align: center;font-weight:600;font-size:26px;padding: 10px 0;border-bottom: solid 3px #eeeeee;">{site_name}</div>
<div style="float:right;padding: 12px 12px 0 0;"><a href="{user_profile_link}" style="text-decoration: none;vertical-align: middle;color: #fff;"><img src="{user_avatar_url}" width="32" height="32" alt="" style="border-radius: 3px;border: 2px solid #fff;background: #fff;vertical-align: middle;margin-right: 10px;" />{display_name}</a></div>
<div style="clear:both"></div> <div style="clear:both"></div>
</div> </div>
<div style="padding: 0 30px 30px 30px;border-bottom: 4px double #ccc;"> <div style="padding: 0 30px 30px 30px;border-bottom: 3px solid #eeeeee;">
<div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;"><span style="display: block;color:#333"><strong>We apologize.</strong> Your registration request on {site_name} has been rejected.</span></div> <div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;">Your registration request has been rejected.</div>
<div style="border: 1px solid #ddd;padding: 15px;background: #eee;border-radius: 3px;text-align: center;">Please feel free to apply at a future date or <a href="mailto:{admin_email}" style="color: #3ba1da;">contact us</a> If you want your information to be reviewed again.</div> <div style="padding: 15px;background: #eee;border-radius: 3px;text-align: center;">Please feel free to apply at a future date or <a href="mailto:{admin_email}" style="color: #3ba1da;text-decoration: none">contact us</a> If you want your information to be reviewed again.</div>
</div> </div>
+9 -9
View File
@@ -1,21 +1,21 @@
<html> <html>
<body> <body style="background: #f2f2f2;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;">
<div style="max-width: 600px;margin:20px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;"> <div style="max-width: 560px;padding: 20px;background: #ffffff;border-radius: 5px;margin:40px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;">
<div style="background: #3ba1da;padding: 0 0 0 20px;color: #fff;font-weight: normal;border-radius: 5px"> <div style="color: #444444;font-weight: normal;">
<div style="float:left;padding: 20px 0;">{site_name}</div> <div style="text-align: center;font-weight:600;font-size:26px;padding: 10px 0;border-bottom: solid 3px #eeeeee;">{site_name}</div>
<div style="float:right;padding: 12px 12px 0 0;"><a href="{user_profile_link}" style="text-decoration: none;vertical-align: middle;color: #fff;"><img src="{user_avatar_url}" width="32" height="32" alt="" style="border-radius: 3px;border: 2px solid #fff;background: #fff;vertical-align: middle;margin-right: 10px;" />{display_name}</a></div>
<div style="clear:both"></div> <div style="clear:both"></div>
</div> </div>
<div style="padding: 0 30px 30px 30px;border-bottom: 4px double #ccc;"> <div style="padding: 0 30px 30px 30px;border-bottom: 3px solid #eeeeee;">
<div style="padding: 30px 0;font-size: 20px;text-align: center;line-height: 32px;color: #333;">We received a request to reset the password for your account. If you made this request, click the link below to change your password:</div> <div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;">We received a request to reset the password for your account. If you made this request, click the link below to change your password:</div>
<div style="padding: 10px 0 50px 0;text-align: center;"><a href="{password_reset_link}" style="background: #3ba1da;color: #fff;padding: 12px 30px;text-decoration: none;border-radius: 3px;letter-spacing: 1px;border: 4px double #fff;">Reset your password</a></div> <div style="padding: 10px 0 50px 0;text-align: center;"><a href="{password_reset_link}" style="background: #555555;color: #fff;padding: 12px 30px;text-decoration: none;border-radius: 3px;letter-spacing: 0.3px;">Reset your password</a></div>
<div style="border: 1px solid #ddd;padding: 15px;background: #eee;border-radius: 3px;text-align: center;">If you didn't make this request, you can ignore this email or <a href="mailto:{admin_email}" style="color: #3ba1da;">report it to us</a>.</div> <div style="padding: 15px;background: #eee;border-radius: 3px;text-align: center;">If you didn't make this request, ignore this email or <a href="mailto:{admin_email}" style="color: #3ba1da;text-decoration: none;">report it to us</a>.</div>
</div> </div>
+10 -10
View File
@@ -1,23 +1,23 @@
<html> <html>
<body> <body style="background: #f2f2f2;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;">
<div style="max-width: 600px;margin:20px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;"> <div style="max-width: 560px;padding: 20px;background: #ffffff;border-radius: 5px;margin:40px auto;font-family: Open Sans,Helvetica,Arial;font-size: 15px;color: #666;">
<div style="background: #3ba1da;padding: 0 0 0 20px;color: #fff;font-weight: normal;border-radius: 5px"> <div style="color: #444444;font-weight: normal;">
<div style="float:left;padding: 20px 0;">{site_name}</div> <div style="text-align: center;font-weight:600;font-size:26px;padding: 10px 0;border-bottom: solid 3px #eeeeee;">{site_name}</div>
<div style="float:right;padding: 12px 12px 0 0;"><a href="{user_profile_link}" style="text-decoration: none;vertical-align: middle;color: #fff;"><img src="{user_avatar_url}" width="32" height="32" alt="" style="border-radius: 3px;border: 2px solid #fff;background: #fff;vertical-align: middle;margin-right: 10px;" />{display_name}</a></div>
<div style="clear:both"></div> <div style="clear:both"></div>
</div> </div>
<div style="padding: 0 30px 30px 30px;border-bottom: 4px double #ccc;"> <div style="padding: 0 30px 30px 30px;border-bottom: 3px solid #eeeeee;">
<div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;">Thank you for signing up with {site_name}!<span style="display: block;color:#333">Your account is now active.</span></div> <div style="padding: 30px 0;font-size: 24px;text-align: center;line-height: 40px;">Thank you for signing up!<span style="display: block;">Your account is now active.</span></div>
<div style="padding: 10px 0 50px 0;text-align: center;"><a href="{login_url}" style="background: #3ba1da;color: #fff;padding: 12px 30px;text-decoration: none;border-radius: 3px;letter-spacing: 1px;border: 4px double #fff;">Login to our site</a></div> <div style="padding: 10px 0 50px 0;text-align: center;"><a href="{login_url}" style="background: #555555;color: #fff;padding: 12px 30px;text-decoration: none;border-radius: 3px;letter-spacing: 0.3px;">Login to our site</a></div>
<div style="border: 1px solid #eee;padding: 0 0 15px 0;background: #fcfcfc;border-radius: 0 0 3px 3px;"> <div style="padding: 0 0 15px 0;">
<div style="background: #eee;color: #444;padding: 12px 15px; border-radius: 3px 3px 0 0;font-weight: bold;font-size: 16px;">Account Information</div> <div style="background: #eee;color: #444;padding: 12px 15px; border-radius: 3px;font-weight: bold;font-size: 16px;">Account Information</div>
<div style="padding: 10px 15px 0 15px;color: #333;"><span style="color:#999">Your account e-mail:</span> <span style="font-weight:bold">{email}</span></div> <div style="padding: 10px 15px 0 15px;color: #333;"><span style="color:#999">Your account e-mail:</span> <span style="font-weight:bold">{email}</span></div>
<div style="padding: 10px 15px 0 15px;color: #333;"><span style="color:#999">Your account username:</span> <span style="font-weight:bold">{username}</span></div> <div style="padding: 10px 15px 0 15px;color: #333;"><span style="color:#999">Your account username:</span> <span style="font-weight:bold">{username}</span></div>
+10
View File
@@ -1721,6 +1721,16 @@ $this->sections[] = array(
'full_width' => true, 'full_width' => true,
), ),
array(
'id' => 'enable_timebot',
'type' => 'switch',
'title' => __( 'Enable Time Check Security','ultimatemember' ),
'default' => 1,
'desc' => __('Turn this option off if you have a conflict with other plugins causing a spam bot message to appear unexpectedly.','ultimatemember'),
'on' => __('On','ultimatemember'),
'off' => __('Off','ultimatemember'),
),
array( array(
'id' => 'disable_minify', 'id' => 'disable_minify',
'type' => 'switch', 'type' => 'switch',
+19
View File
@@ -12,6 +12,8 @@ class UM_API {
add_action('init', array(&$this, 'init'), 0); add_action('init', array(&$this, 'init'), 0);
add_action('init', array(&$this, 'load_addons') );
$this->honeypot = 'request'; $this->honeypot = 'request';
$this->available_languages = array( $this->available_languages = array(
@@ -26,6 +28,20 @@ class UM_API {
'tr_TR' => 'Türkçe', 'tr_TR' => 'Türkçe',
); );
$this->addons['bp_avatar_transfer'] = array( __( 'BuddyPress Avatar Transfer','ultimatemember' ), __('This tool enables you to migrate your custom user photos from BuddyPress to use with Ultimate Member.','ultimatemember') );
}
/***
*** @Load add-ons
***/
function load_addons() {
global $ultimatemember;
if ( !is_admin() ) return;
foreach( $ultimatemember->addons as $addon => $name ) {
if ( um_get_option('addon_' . $addon ) == 1 )
include_once um_path . 'addons/'.$addon.'.php';
}
} }
/*** /***
@@ -67,6 +83,7 @@ class UM_API {
require_once um_path . 'core/um-modal.php'; require_once um_path . 'core/um-modal.php';
require_once um_path . 'core/um-cron.php'; require_once um_path . 'core/um-cron.php';
require_once um_path . 'core/um-cache.php'; require_once um_path . 'core/um-cache.php';
require_once um_path . 'core/um-tracking.php';
require_once um_path . 'core/lib/mobiledetect/Mobile_Detect.php'; require_once um_path . 'core/lib/mobiledetect/Mobile_Detect.php';
@@ -101,6 +118,7 @@ class UM_API {
require_once um_path . 'core/um-filters-profile.php'; require_once um_path . 'core/um-filters-profile.php';
require_once um_path . 'core/um-filters-account.php'; require_once um_path . 'core/um-filters-account.php';
require_once um_path . 'core/um-filters-misc.php'; require_once um_path . 'core/um-filters-misc.php';
require_once um_path . 'core/um-filters-addons.php';
/* initialize UM */ /* initialize UM */
$this->rewrite = new UM_Rewrite(); $this->rewrite = new UM_Rewrite();
@@ -134,6 +152,7 @@ class UM_API {
$this->modal = new UM_Modal(); $this->modal = new UM_Modal();
$this->cron = new UM_Cron(); $this->cron = new UM_Cron();
$this->cache = new UM_Cache(); $this->cache = new UM_Cache();
$this->tracking = new UM_Tracking();
$this->mobile = new Mobile_Detect; $this->mobile = new Mobile_Detect;