- strict typing with UM settings;

- wpcs;
- hookdocs;
This commit is contained in:
Mykyta Synelnikov
2024-03-07 02:30:57 +02:00
parent 41e9a50e0b
commit 3b0e7f2f73
2 changed files with 137 additions and 173 deletions
+99 -123
View File
@@ -662,123 +662,85 @@ if ( ! class_exists( 'um\Config' ) ) {
$this->permalinks = $this->get_core_pages(); $this->permalinks = $this->get_core_pages();
$this->default_roles_metadata = array( $this->default_roles_metadata = array(
/* 'subscriber' => array(
* All caps map '_um_can_access_wpadmin' => 0,
* '_um_can_not_see_adminbar' => 1,
* '_um_can_access_wpadmin' => 1, '_um_can_edit_everyone' => 0,
'_um_can_not_see_adminbar' => 0, '_um_can_delete_everyone' => 0,
'_um_can_edit_everyone' => 1, '_um_can_edit_profile' => 1,
'_um_can_edit_roles' => '', '_um_can_delete_profile' => 1,
'_um_can_delete_everyone' => 1, '_um_after_login' => 'redirect_profile',
'_um_can_delete_roles' => '', '_um_after_logout' => 'redirect_home',
'_um_after_delete' => '', '_um_default_homepage' => 1,
'_um_delete_redirect_url' => '', '_um_can_view_all' => 1,
'_um_can_edit_profile' => 1, '_um_can_make_private_profile' => 0,
'_um_can_delete_profile' => 1, '_um_can_access_private_profile' => 0,
'_um_default_homepage' => 1, '_um_status' => 'approved',
'_um_redirect_homepage' => '', '_um_auto_approve_act' => 'redirect_profile',
'_um_after_login' => 'redirect_admin',
'_um_login_redirect_url' => '',
'_um_after_logout' => 'redirect_home',
'_um_logout_redirect_url' => '',
'_um_can_view_all' => 1,
'_um_can_view_roles' => '',
'_um_can_make_private_profile' => 1,
'_um_can_access_private_profile' => 1,
'_um_status' => 'approved',
'_um_auto_approve_act' => 'redirect_profile',
'_um_auto_approve_url' => '',
'_um_login_email_activate' => '',
'_um_checkmail_action' => '',
'_um_checkmail_message' => '',
'_um_checkmail_url' => '',
'_um_url_email_activate' => '',
'_um_pending_action' => '',
'_um_pending_message' => '',
'_um_pending_url' => '',
*
* */
'subscriber' => array(
'_um_can_access_wpadmin' => 0,
'_um_can_not_see_adminbar' => 1,
'_um_can_edit_everyone' => 0,
'_um_can_delete_everyone' => 0,
'_um_can_edit_profile' => 1,
'_um_can_delete_profile' => 1,
'_um_after_login' => 'redirect_profile',
'_um_after_logout' => 'redirect_home',
'_um_default_homepage' => 1,
'_um_can_view_all' => 1,
'_um_can_make_private_profile' => 0,
'_um_can_access_private_profile' => 0,
'_um_status' => 'approved',
'_um_auto_approve_act' => 'redirect_profile',
), ),
'author' => array( 'author' => array(
'_um_can_access_wpadmin' => 0, '_um_can_access_wpadmin' => 0,
'_um_can_not_see_adminbar' => 1, '_um_can_not_see_adminbar' => 1,
'_um_can_edit_everyone' => 0, '_um_can_edit_everyone' => 0,
'_um_can_delete_everyone' => 0, '_um_can_delete_everyone' => 0,
'_um_can_edit_profile' => 1, '_um_can_edit_profile' => 1,
'_um_can_delete_profile' => 1, '_um_can_delete_profile' => 1,
'_um_after_login' => 'redirect_profile', '_um_after_login' => 'redirect_profile',
'_um_after_logout' => 'redirect_home', '_um_after_logout' => 'redirect_home',
'_um_default_homepage' => 1, '_um_default_homepage' => 1,
'_um_can_view_all' => 1, '_um_can_view_all' => 1,
'_um_can_make_private_profile' => 0, '_um_can_make_private_profile' => 0,
'_um_can_access_private_profile' => 0, '_um_can_access_private_profile' => 0,
'_um_status' => 'approved', '_um_status' => 'approved',
'_um_auto_approve_act' => 'redirect_profile', '_um_auto_approve_act' => 'redirect_profile',
), ),
'contributor' => array( 'contributor' => array(
'_um_can_access_wpadmin' => 0, '_um_can_access_wpadmin' => 0,
'_um_can_not_see_adminbar' => 1, '_um_can_not_see_adminbar' => 1,
'_um_can_edit_everyone' => 0, '_um_can_edit_everyone' => 0,
'_um_can_delete_everyone' => 0, '_um_can_delete_everyone' => 0,
'_um_can_edit_profile' => 1, '_um_can_edit_profile' => 1,
'_um_can_delete_profile' => 1, '_um_can_delete_profile' => 1,
'_um_after_login' => 'redirect_profile', '_um_after_login' => 'redirect_profile',
'_um_after_logout' => 'redirect_home', '_um_after_logout' => 'redirect_home',
'_um_default_homepage' => 1, '_um_default_homepage' => 1,
'_um_can_view_all' => 1, '_um_can_view_all' => 1,
'_um_can_make_private_profile' => 0, '_um_can_make_private_profile' => 0,
'_um_can_access_private_profile' => 0, '_um_can_access_private_profile' => 0,
'_um_status' => 'approved', '_um_status' => 'approved',
'_um_auto_approve_act' => 'redirect_profile', '_um_auto_approve_act' => 'redirect_profile',
), ),
'editor' => array( 'editor' => array(
'_um_can_access_wpadmin' => 0, '_um_can_access_wpadmin' => 0,
'_um_can_not_see_adminbar' => 1, '_um_can_not_see_adminbar' => 1,
'_um_can_edit_everyone' => 0, '_um_can_edit_everyone' => 0,
'_um_can_delete_everyone' => 0, '_um_can_delete_everyone' => 0,
'_um_can_edit_profile' => 1, '_um_can_edit_profile' => 1,
'_um_can_delete_profile' => 1, '_um_can_delete_profile' => 1,
'_um_after_login' => 'redirect_profile', '_um_after_login' => 'redirect_profile',
'_um_after_logout' => 'redirect_home', '_um_after_logout' => 'redirect_home',
'_um_default_homepage' => 1, '_um_default_homepage' => 1,
'_um_can_view_all' => 1, '_um_can_view_all' => 1,
'_um_can_make_private_profile' => 0, '_um_can_make_private_profile' => 0,
'_um_can_access_private_profile' => 0, '_um_can_access_private_profile' => 0,
'_um_status' => 'approved', '_um_status' => 'approved',
'_um_auto_approve_act' => 'redirect_profile', '_um_auto_approve_act' => 'redirect_profile',
), ),
'administrator' => array( 'administrator' => array(
'_um_can_access_wpadmin' => 1, '_um_can_access_wpadmin' => 1,
'_um_can_not_see_adminbar' => 0, '_um_can_not_see_adminbar' => 0,
'_um_can_edit_everyone' => 1, '_um_can_edit_everyone' => 1,
'_um_can_delete_everyone' => 1, '_um_can_delete_everyone' => 1,
'_um_can_edit_profile' => 1, '_um_can_edit_profile' => 1,
'_um_can_delete_profile' => 1, '_um_can_delete_profile' => 1,
'_um_default_homepage' => 1, '_um_default_homepage' => 1,
'_um_after_login' => 'redirect_admin', '_um_after_login' => 'redirect_admin',
'_um_after_logout' => 'redirect_home', '_um_after_logout' => 'redirect_home',
'_um_can_view_all' => 1, '_um_can_view_all' => 1,
'_um_can_make_private_profile' => 1, '_um_can_make_private_profile' => 1,
'_um_can_access_private_profile' => 1, '_um_can_access_private_profile' => 1,
'_um_status' => 'approved', '_um_status' => 'approved',
'_um_auto_approve_act' => 'redirect_profile', '_um_auto_approve_act' => 'redirect_profile',
), ),
); );
@@ -826,20 +788,34 @@ if ( ! class_exists( 'um\Config' ) ) {
return $permalink; return $permalink;
} }
/** /**
* @todo make config class not cycled * @todo make config class not cycled
*/ */
function set_core_page() { public function set_core_page() {
$this->core_pages = apply_filters( 'um_core_pages', array( $this->core_pages = array(
'user' => array( 'title' => __( 'User', 'ultimate-member' ) ), 'user' => array(
'login' => array( 'title' => __( 'Login', 'ultimate-member' ) ), 'title' => __( 'User', 'ultimate-member' ),
'register' => array( 'title' => __( 'Register', 'ultimate-member' ) ), ),
'members' => array( 'title' => __( 'Members', 'ultimate-member' ) ), 'login' => array(
'logout' => array( 'title' => __( 'Logout', 'ultimate-member' ) ), 'title' => __( 'Login', 'ultimate-member' ),
'account' => array( 'title' => __( 'Account', 'ultimate-member' ) ), ),
'password-reset' => array( 'title' => __( 'Password Reset', 'ultimate-member' ) ), 'register' => array(
) ); 'title' => __( 'Register', 'ultimate-member' ),
),
'members' => array(
'title' => __( 'Members', 'ultimate-member' ),
),
'logout' => array(
'title' => __( 'Logout', 'ultimate-member' ),
),
'account' => array(
'title' => __( 'Account', 'ultimate-member' ),
),
'password-reset' => array(
'title' => __( 'Password Reset', 'ultimate-member' ),
),
);
$this->core_pages = apply_filters( 'um_core_pages', $this->core_pages );
} }
/** /**
+38 -50
View File
@@ -235,7 +235,6 @@ if ( ! class_exists( 'UM' ) ) {
} }
} }
/** /**
* Loading UM textdomain * Loading UM textdomain
* *
@@ -246,71 +245,61 @@ if ( ! class_exists( 'UM' ) ) {
$language_locale = get_user_locale(); $language_locale = get_user_locale();
/** /**
* UM hook * Filters the language locale before loading textdomain.
* *
* @type filter * @since 1.3.x
* @title um_language_locale * @hook um_language_locale
* @description Change UM language locale *
* @input_vars * @param {string} $language_locale Current language locale.
* [{"var":"$locale","type":"string","desc":"UM language locale"}] *
* @change_log * @return {string} Maybe changed language locale.
* ["Since: 2.0"] *
* @usage add_filter( 'um_language_locale', 'function_name', 10, 1 ); * @example <caption>Change UM language locale.</caption>
* @example * function my_um_language_locale( $language_locale ) {
* <?php * $language_locale = 'es_ES';
* add_filter( 'um_language_locale', 'my_language_locale', 10, 1 ); * return $language_locale;
* function my_language_locale( $locale ) {
* // your code here
* return $locale;
* } * }
* ?> * add_filter( 'um_language_locale', 'my_um_language_locale' );
*/ */
$language_locale = apply_filters( 'um_language_locale', $language_locale ); $language_locale = apply_filters( 'um_language_locale', $language_locale );
/** /**
* UM hook * Filters the plugin's textdomain.
* *
* @type filter * @param {string} $textdomain Plugin's textdomain.
* @title um_language_textdomain *
* @description Change UM textdomain * @return {string} Maybe changed plugin's textdomain.
* @input_vars *
* [{"var":"$domain","type":"string","desc":"UM Textdomain"}] * @since 1.3.x
* @change_log * @hook um_language_textdomain
* ["Since: 2.0"] *
* @usage add_filter( 'um_language_textdomain', 'function_name', 10, 1 ); * @example <caption>Change UM language locale.</caption>
* @example * function my_um_language_textdomain( $textdomain ) {
* <?php * $language_locale = 'ultimate-member-custom';
* add_filter( 'um_language_textdomain', 'my_textdomain', 10, 1 ); * return $textdomain;
* function my_textdomain( $domain ) {
* // your code here
* return $domain;
* } * }
* ?> * add_filter( 'um_language_textdomain', 'my_um_language_textdomain' );
*/ */
$language_domain = apply_filters( 'um_language_textdomain', 'ultimate-member' ); $language_domain = apply_filters( 'um_language_textdomain', 'ultimate-member' );
$language_file = WP_LANG_DIR . '/plugins/' . $language_domain . '-' . $language_locale . '.mo'; $language_file = WP_LANG_DIR . '/plugins/' . $language_domain . '-' . $language_locale . '.mo';
/** /**
* UM hook * Filters the path to the language file (*.mo).
* *
* @type filter * @param {string} $language_file Default path to the language file.
* @title um_language_file *
* @description Change UM language file path * @return {string} Language file path.
* @input_vars *
* [{"var":"$language_file","type":"string","desc":"UM language file path"}] * @since 1.3.x
* @change_log * @hook um_language_file
* ["Since: 2.0"] *
* @usage add_filter( 'um_language_file', 'function_name', 10, 1 ); * @example <caption>Change UM language file path.</caption>
* @example * function my_um_language_file( $language_file ) {
* <?php * $language_file = '{path-to-language-file}';
* add_filter( 'um_language_file', 'my_language_file', 10, 1 );
* function my_language_file( $language_file ) {
* // your code here
* return $language_file; * return $language_file;
* } * }
* ?> * add_filter( 'um_language_file', 'my_um_language_file' );
*/ */
$language_file = apply_filters( 'um_language_file', $language_file ); $language_file = apply_filters( 'um_language_file', $language_file );
@@ -321,7 +310,6 @@ if ( ! class_exists( 'UM' ) ) {
load_textdomain( $language_domain, $language_file ); load_textdomain( $language_domain, $language_file );
} }
/** /**
* 1.3.x active extensions deactivate for properly running 2.0.x AJAX upgrades * 1.3.x active extensions deactivate for properly running 2.0.x AJAX upgrades
*/ */