From 78121038511b5fe453c876149f5b3fd217e3b49c Mon Sep 17 00:00:00 2001 From: andrewshuba Date: Mon, 6 May 2019 17:22:57 +0300 Subject: [PATCH] separate placeholders into filters --- includes/admin/core/class-admin-users.php | 8 +-- includes/core/class-mail.php | 41 ++++++++++++++ includes/core/class-password.php | 30 ++++++++++ includes/core/class-profile.php | 31 ++++++++++ includes/core/class-shortcodes.php | 28 +++++++++ includes/core/class-user.php | 32 ++++++++++- includes/core/um-actions-core.php | 8 +-- includes/core/um-actions-profile.php | 2 +- includes/core/um-filters-profile.php | 12 +--- includes/um-short-functions.php | 69 ++++++++--------------- languages/ultimate-member-en.po | 5 ++ languages/ultimate-member-en_US.po | 5 ++ languages/ultimatemember-en_US.po | 5 ++ 13 files changed, 208 insertions(+), 68 deletions(-) diff --git a/includes/admin/core/class-admin-users.php b/includes/admin/core/class-admin-users.php index 941ebc88..b3f8eb76 100644 --- a/includes/admin/core/class-admin-users.php +++ b/includes/admin/core/class-admin-users.php @@ -74,8 +74,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Users' ) ) { case 'um_approve_membership': case 'um_reenable': - add_filter( 'um_template_tags_patterns_hook', 'password_reset_link_tags_patterns', 10, 1 ); - add_filter( 'um_template_tags_replaces_hook', 'password_reset_link_tags_replaces', 10, 1 ); + add_filter( 'um_template_tags_patterns_hook', array( UM()->password(), 'add_placeholder' ), 10, 1 ); + add_filter( 'um_template_tags_replaces_hook', array( UM()->password(), 'add_replace_placeholder' ), 10, 1 ); UM()->user()->approve(); break; @@ -86,8 +86,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Users' ) ) { case 'um_resend_activation': - add_filter( 'um_template_tags_patterns_hook', 'account_activation_link_tags_patterns', 10, 1 ); - add_filter( 'um_template_tags_replaces_hook', 'account_activation_link_tags_replaces', 10, 1 ); + add_filter( 'um_template_tags_patterns_hook', array( UM()->user(), 'add_activation_placeholder' ), 10, 1 ); + add_filter( 'um_template_tags_replaces_hook', array( UM()->user(), 'add_activation_replace_placeholder' ), 10, 1 ); UM()->user()->email_pending(); break; diff --git a/includes/core/class-mail.php b/includes/core/class-mail.php index 3632e182..596f7b14 100644 --- a/includes/core/class-mail.php +++ b/includes/core/class-mail.php @@ -380,6 +380,9 @@ if ( ! class_exists( 'um\core\Mail' ) ) { */ $message = apply_filters( 'um_email_send_message_content', $message, $slug, $args ); + add_filter( 'um_template_tags_patterns_hook', array( &$this, 'add_placeholder' ), 10, 1 ); + add_filter( 'um_template_tags_replaces_hook', array( &$this, 'add_replace_placeholder' ), 10, 1 ); + // Convert tags in email template return um_convert_tags( $message, $args ); } @@ -427,6 +430,10 @@ if ( ! class_exists( 'um\core\Mail' ) ) { * } * ?> */ + + add_filter( 'um_template_tags_patterns_hook', array( UM()->mail(), 'add_placeholder' ), 10, 1 ); + add_filter( 'um_template_tags_replaces_hook', array( UM()->mail(), 'add_replace_placeholder' ), 10, 1 ); + $subject = apply_filters( 'um_email_send_subject', UM()->options()->get( $template . '_sub' ), $template ); $this->subject = um_convert_tags( $subject , $args ); @@ -568,5 +575,39 @@ if ( ! class_exists( 'um\core\Mail' ) ) { return false; } } + + + /** + * UM Placeholders for site url, admin email, submit registration + * + * @param $placeholders + * + * @return array + */ + function add_placeholder( $placeholders ) { + $placeholders[] = '{site_url}'; + $placeholders[] = '{admin_email}'; + $placeholders[] = '{submitted_registration}'; + $placeholders[] = '{login_url}'; + $placeholders[] = '{password}'; + return $placeholders; + } + + + /** + * UM Replace Placeholders for site url, admin email, submit registration + * + * @param $replace_placeholders + * + * @return array + */ + function add_replace_placeholder( $replace_placeholders ) { + $replace_placeholders[] = get_bloginfo( 'url' ); + $replace_placeholders[] = um_admin_email(); + $replace_placeholders[] = um_user_submitted_registration(); + $replace_placeholders[] = um_get_core_page( 'login' ); + $replace_placeholders[] = esc_html__( 'Your set password', 'ultimate-member' ); + return $replace_placeholders; + } } } \ No newline at end of file diff --git a/includes/core/class-password.php b/includes/core/class-password.php index e66e1058..53c17938 100644 --- a/includes/core/class-password.php +++ b/includes/core/class-password.php @@ -1,9 +1,11 @@ password(), 'add_placeholder' ), 10, 1 ); + add_filter( 'um_template_tags_replaces_hook', array( UM()->password(), 'add_replace_placeholder' ), 10, 1 ); + UM()->mail()->send( um_user('user_email'), 'resetpw_email' ); } @@ -1899,5 +1901,31 @@ if ( ! class_exists( 'um\core\User' ) ) { return $hash_email_address; } + + + /** + * UM Placeholders for activation link in email + * + * @param $placeholders + * + * @return array + */ + function add_activation_placeholder( $placeholders ) { + $placeholders[] = '{account_activation_link}'; + return $placeholders; + } + + + /** + * UM Replace Placeholders for activation link in email + * + * @param $replace_placeholders + * + * @return array + */ + function add_activation_replace_placeholder( $replace_placeholders ) { + $replace_placeholders[] = um_user( 'account_activation_link' ); + return $replace_placeholders; + } } } \ No newline at end of file diff --git a/includes/core/um-actions-core.php b/includes/core/um-actions-core.php index f2345951..70b0c4bd 100644 --- a/includes/core/um-actions-core.php +++ b/includes/core/um-actions-core.php @@ -100,8 +100,8 @@ function um_action_request_process() { wp_die( __( 'You do not have permission to make this action.', 'ultimate-member' ) ); } - add_filter( 'um_template_tags_patterns_hook', 'password_reset_link_tags_patterns', 10, 1 ); - add_filter( 'um_template_tags_replaces_hook', 'password_reset_link_tags_replaces', 10, 1 ); + add_filter( 'um_template_tags_patterns_hook', array( UM()->password(), 'add_placeholder' ), 10, 1 ); + add_filter( 'um_template_tags_replaces_hook', array( UM()->password(), 'add_replace_placeholder' ), 10, 1 ); um_fetch_user( $uid ); UM()->user()->approve(); @@ -123,8 +123,8 @@ function um_action_request_process() { wp_die( __( 'You do not have permission to make this action.', 'ultimate-member' ) ); } - add_filter( 'um_template_tags_patterns_hook', 'account_activation_link_tags_patterns', 10, 1 ); - add_filter( 'um_template_tags_replaces_hook', 'account_activation_link_tags_replaces', 10, 1 ); + add_filter( 'um_template_tags_patterns_hook', array( UM()->user(), 'add_activation_placeholder' ), 10, 1 ); + add_filter( 'um_template_tags_replaces_hook', array( UM()->user(), 'add_activation_replace_placeholder' ), 10, 1 ); um_fetch_user( $uid ); UM()->user()->email_pending(); diff --git a/includes/core/um-actions-profile.php b/includes/core/um-actions-profile.php index 235acdaf..d1c8fd39 100644 --- a/includes/core/um-actions-profile.php +++ b/includes/core/um-actions-profile.php @@ -482,8 +482,8 @@ function um_profile_dynamic_meta_desc() { $content = um_convert_tags( UM()->options()->get( 'profile_desc' ) ); $user_id = um_user( 'ID' ); - $url = um_user_profile_url(); + $url = um_user_profile_url(); $avatar = um_get_user_avatar_url( $user_id, 'original' ); um_reset_user(); ?> diff --git a/includes/core/um-filters-profile.php b/includes/core/um-filters-profile.php index 991e63a8..8f396073 100644 --- a/includes/core/um-filters-profile.php +++ b/includes/core/um-filters-profile.php @@ -14,19 +14,11 @@ function um_dynamic_user_profile_pagetitle( $title, $sep = '' ) { $profile_title = UM()->options()->get( 'profile_title' ); - if ( um_is_core_page('user') && um_get_requested_user() ) { + if ( um_is_core_page( 'user' ) && um_get_requested_user() ) { um_fetch_user( um_get_requested_user() ); - $search = array( - '{display_name}', - '{site_name}' - ); - $replace = array( - um_user( 'display_name' ), - UM()->options()->get( 'site_name' ) - ); - $profile_title = str_replace( $search, $replace, $profile_title ); + $profile_title = um_convert_tags( $profile_title ); $title = $profile_title; diff --git a/includes/um-short-functions.php b/includes/um-short-functions.php index 7669f27e..4404d448 100644 --- a/includes/um-short-functions.php +++ b/includes/um-short-functions.php @@ -103,15 +103,12 @@ function um_clean_user_basename( $value ) { /** - * Convert template tags + * Getting replace placeholders array * - * @param $content - * @param array $args - * @param bool $with_kses - * - * @return mixed|string + * @return array */ -function um_convert_tags( $content, $args = array(), $with_kses = true ) { +function um_replace_placeholders() { + $search = array( '{display_name}', '{first_name}', @@ -119,18 +116,11 @@ function um_convert_tags( $content, $args = array(), $with_kses = true ) { '{gender}', '{username}', '{email}', - '{password}', - '{login_url}', - '{login_referrer}', '{site_name}', - '{site_url}', - '{admin_email}', - '{user_profile_link}', '{user_account_link}', - '{submitted_registration}', - '{user_avatar_url}', ); + /** * UM hook * @@ -161,16 +151,8 @@ function um_convert_tags( $content, $args = array(), $with_kses = true ) { um_user( 'gender' ), um_user( 'user_login' ), um_user( 'user_email' ), - um_user( '_um_cool_but_hard_to_guess_plain_pw' ), - um_get_core_page( 'login' ), - um_dynamic_login_page_redirect(), UM()->options()->get( 'site_name' ), - get_bloginfo( 'url' ), - um_admin_email(), - um_user_profile_url(), um_get_core_page( 'account' ), - um_user_submitted_registration(), - um_get_user_avatar_url(), ); /** @@ -196,7 +178,23 @@ function um_convert_tags( $content, $args = array(), $with_kses = true ) { */ $replace = apply_filters( 'um_template_tags_replaces_hook', $replace ); - $content = str_replace( $search, $replace, $content ); + return array_combine( $search, $replace ); +} + + +/** + * Convert template tags + * + * @param $content + * @param array $args + * @param bool $with_kses + * + * @return mixed|string + */ +function um_convert_tags( $content, $args = array(), $with_kses = true ) { + $placeholders = um_replace_placeholders(); + + $content = str_replace( array_keys( $placeholders ), array_values( $placeholders ), $content ); if ( $with_kses ) { $content = wp_kses_decode_entities( $content ); } @@ -218,29 +216,6 @@ function um_convert_tags( $content, $args = array(), $with_kses = true ) { return $content; } -/** - * UM Placeholders for reset password - * - * @param $placeholders - * - * @return array - */ -function password_reset_link_tags_patterns( $placeholders ) { - $placeholders[] = '{password_reset_link}'; - return $placeholders; -} - -/** - * UM Replace Placeholders for reset password - * - * @param $replace_placeholders - * - * @return array - */ -function password_reset_link_tags_replaces( $replace_placeholders ) { - $replace_placeholders[] = um_user( 'password_reset_link' ); - return $replace_placeholders; -} /** * UM Placeholders for activation link in email diff --git a/languages/ultimate-member-en.po b/languages/ultimate-member-en.po index 4937787b..e9a10803 100644 --- a/languages/ultimate-member-en.po +++ b/languages/ultimate-member-en.po @@ -6351,6 +6351,11 @@ msgstr "" msgid "Comments" msgstr "" +#: includes/core/class-profile.php:424 includes/core/class-mail.php:609 +#: includes/core/class-password.php:701 +msgid "Your set password" +msgstr "" + #: includes/core/class-rest-api.php:217 msgid "You must specify both a token and API key!" msgstr "" diff --git a/languages/ultimate-member-en_US.po b/languages/ultimate-member-en_US.po index d0cb42a3..afe48d4a 100644 --- a/languages/ultimate-member-en_US.po +++ b/languages/ultimate-member-en_US.po @@ -6511,6 +6511,11 @@ msgstr "" msgid "Comments" msgstr "" +#: includes/core/class-profile.php:424 includes/core/class-mail.php:609 +#: includes/core/class-password.php:701 +msgid "Your set password" +msgstr "" + #: includes/core/class-shortcodes.php:360 msgid "" "This content has been restricted to logged in users only. Please