- strict typing with UM settings;

- wpcs;
- hookdocs;
- added um-deprecated-hooks.php file for leaving the comments about deprecated hooks;
- plugin textdomain native method to register textdomains;
This commit is contained in:
Mykyta Synelnikov
2024-03-07 10:17:38 +02:00
parent 3b0e7f2f73
commit 7c2b305266
2 changed files with 60 additions and 53 deletions
+13 -53
View File
@@ -236,37 +236,18 @@ if ( ! class_exists( 'UM' ) ) {
} }
/** /**
* Loading UM textdomain * Loading UM textdomain.
* *
* 'ultimate-member' by default * Note: 'ultimate-member' is a default textdomain.
*
* @since 2.8.5 WordPress native functions are used to make this function clear.
*/ */
public function localize() { public function localize() {
// The function `get_user_locale()` will return `get_locale()` result by default if user or its locale is empty. $default_domain = dirname( plugin_basename( UM_PLUGIN ) );
$language_locale = get_user_locale();
/**
* Filters the language locale before loading textdomain.
*
* @since 1.3.x
* @hook um_language_locale
*
* @param {string} $language_locale Current language locale.
*
* @return {string} Maybe changed language locale.
*
* @example <caption>Change UM language locale.</caption>
* function my_um_language_locale( $language_locale ) {
* $language_locale = 'es_ES';
* return $language_locale;
* }
* add_filter( 'um_language_locale', 'my_um_language_locale' );
*/
$language_locale = apply_filters( 'um_language_locale', $language_locale );
/** /**
* Filters the plugin's textdomain. * Filters the plugin's textdomain.
* *
* @param {string} $textdomain Plugin's textdomain. * @param {string} $domain Plugin's textdomain.
* *
* @return {string} Maybe changed plugin's textdomain. * @return {string} Maybe changed plugin's textdomain.
* *
@@ -274,40 +255,19 @@ if ( ! class_exists( 'UM' ) ) {
* @hook um_language_textdomain * @hook um_language_textdomain
* *
* @example <caption>Change UM language locale.</caption> * @example <caption>Change UM language locale.</caption>
* function my_um_language_textdomain( $textdomain ) { * function my_um_language_textdomain( $domain ) {
* $language_locale = 'ultimate-member-custom'; * $domain = 'ultimate-member-custom';
* return $textdomain; * return $domain;
* } * }
* add_filter( 'um_language_textdomain', 'my_um_language_textdomain' ); * add_filter( 'um_language_textdomain', 'my_um_language_textdomain' );
*/ */
$language_domain = apply_filters( 'um_language_textdomain', 'ultimate-member' ); $domain = apply_filters( 'um_language_textdomain', $default_domain );
$language_file = WP_LANG_DIR . '/plugins/' . $language_domain . '-' . $language_locale . '.mo';
/**
* Filters the path to the language file (*.mo).
*
* @param {string} $language_file Default path to the language file.
*
* @return {string} Language file path.
*
* @since 1.3.x
* @hook um_language_file
*
* @example <caption>Change UM language file path.</caption>
* function my_um_language_file( $language_file ) {
* $language_file = '{path-to-language-file}';
* return $language_file;
* }
* add_filter( 'um_language_file', 'my_um_language_file' );
*/
$language_file = apply_filters( 'um_language_file', $language_file );
// Unload textdomain if it has already loaded. // Unload textdomain if it has already loaded.
if ( is_textdomain_loaded( $language_domain ) ) { if ( is_textdomain_loaded( $domain ) ) {
unload_textdomain( $language_domain, true ); unload_textdomain( $domain, true );
} }
load_textdomain( $language_domain, $language_file ); load_plugin_textdomain( $domain, false, $default_domain . '/languages' );
} }
/** /**
+47
View File
@@ -0,0 +1,47 @@
<?php
/**
* Deprecated Ultimate Member hooks.
* The place for hookdocs of the Ultimate Member hooks that have been deprecated.
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Filters the language locale before loading textdomain.
*
* @param {string} $language_locale Current language locale.
*
* @return {string} Maybe changed language locale.
*
* @since 1.3.x
* @depecated 2.8.5 Used WordPress native `load_plugin_textdomain()`. And can be replaced via WordPress native hook 'plugin_locale'.
* @hook um_language_locale
*
* @example <caption>Change UM language locale.</caption>
* function my_um_language_locale( $language_locale ) {
* $language_locale = 'es_ES';
* return $language_locale;
* }
* add_filter( 'um_language_locale', 'my_um_language_locale' );
*/
/**
* Filters the path to the language file (*.mo).
*
* @param {string} $language_file Default path to the language file.
*
* @return {string} Language file path.
*
* @since 1.3.x
* @depecated 2.8.5 Used WordPress native `load_plugin_textdomain()`. And can be replaced via WordPress native hook 'load_textdomain_mofile'.
* @hook um_language_file
*
* @example <caption>Change UM language file path.</caption>
* function my_um_language_file( $language_file ) {
* $language_file = '{path-to-language-file}';
* return $language_file;
* }
* add_filter( 'um_language_file', 'my_um_language_file' );
*/