mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-11 18:56:10 +09:00
- small fixes for language url function;
This commit is contained in:
@@ -1115,7 +1115,6 @@ if ( ! class_exists( 'UM' ) ) {
|
||||
require_once 'core/um-actions-save-profile.php';
|
||||
require_once 'core/um-actions-misc.php';
|
||||
|
||||
require_once 'core/um-filters-language.php';
|
||||
require_once 'core/um-filters-login.php';
|
||||
require_once 'core/um-filters-fields.php';
|
||||
require_once 'core/um-filters-files.php';
|
||||
|
||||
@@ -14,13 +14,16 @@ if ( ! class_exists( 'External_Integrations' ) ) {
|
||||
//WPML translations
|
||||
add_filter( 'um_get_core_page_filter', array( &$this, 'get_core_page_url' ), 10, 3 );
|
||||
add_filter( 'um_admin_settings_email_section_fields', array( &$this, 'um_admin_settings_email_section_fields' ), 10, 2 );
|
||||
add_filter( 'um_email_send_subject', array( &$this , 'um_email_send_subject' ), 10, 2 );
|
||||
add_filter( 'um_locate_email_template', array( &$this , 'locate_email_template' ), 10, 2 );
|
||||
add_filter( 'um_change_email_template_file', array( &$this , 'change_email_template_file' ), 10, 1 );
|
||||
add_filter( 'um_email_templates_columns', array( &$this , 'add_email_templates_wpml_column' ), 10, 1 );
|
||||
add_filter( 'um_email_send_subject', array( &$this, 'um_email_send_subject' ), 10, 2 );
|
||||
add_filter( 'um_locate_email_template', array( &$this, 'locate_email_template' ), 10, 2 );
|
||||
add_filter( 'um_change_email_template_file', array( &$this, 'change_email_template_file' ), 10, 1 );
|
||||
add_filter( 'um_email_templates_columns', array( &$this, 'add_email_templates_wpml_column' ), 10, 1 );
|
||||
|
||||
|
||||
add_action( 'um_access_fix_external_post_content', array( &$this , 'bbpress_no_access_message_fix' ), 10 );
|
||||
add_action( 'um_access_fix_external_post_content', array( &$this, 'bbpress_no_access_message_fix' ), 10 );
|
||||
|
||||
add_filter( 'um_localize_permalink_filter', array( &$this, 'um_localize_permalink_filter' ), 10, 2 );
|
||||
add_filter( 'icl_ls_languages', array( &$this, 'um_core_page_wpml_permalink' ), 10, 1 );
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +35,75 @@ if ( ! class_exists( 'External_Integrations' ) ) {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $profile_url
|
||||
* @param $page_id
|
||||
*
|
||||
* @return bool|false|string
|
||||
*/
|
||||
function um_localize_permalink_filter( $profile_url, $page_id ) {
|
||||
|
||||
if ( ! $this->is_wpml_active() )
|
||||
return $profile_url;
|
||||
|
||||
if ( function_exists( 'icl_get_current_language' ) && icl_get_current_language() != icl_get_default_language() ) {
|
||||
if ( get_the_ID() > 0 && get_post_meta( get_the_ID(), '_um_wpml_user', true ) == 1 ) {
|
||||
$profile_url = get_permalink( get_the_ID() );
|
||||
}
|
||||
}
|
||||
|
||||
// WPML compatibility
|
||||
if ( function_exists( 'icl_object_id' ) ) {
|
||||
$language_code = ICL_LANGUAGE_CODE;
|
||||
$lang_post_id = icl_object_id( $page_id , 'page', true, $language_code );
|
||||
|
||||
if ( $lang_post_id != 0 ) {
|
||||
$profile_url = get_permalink( $lang_post_id );
|
||||
} else {
|
||||
// No page found, it's most likely the homepage
|
||||
global $sitepress;
|
||||
$profile_url = $sitepress->language_url( $language_code );
|
||||
}
|
||||
}
|
||||
|
||||
return $profile_url;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $array
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
function um_core_page_wpml_permalink( $array ) {
|
||||
|
||||
if ( ! $this->is_wpml_active() )
|
||||
return $array;
|
||||
|
||||
global $sitepress;
|
||||
if( ! um_is_core_page("user") ) return $array;
|
||||
if( ! defined("ICL_LANGUAGE_CODE") ) return $array;
|
||||
if( ! function_exists('icl_object_id') ) return $array;
|
||||
|
||||
// Permalink base
|
||||
$permalink_base = UM()->options()->get( 'permalink_base' );
|
||||
|
||||
// Get user slug
|
||||
$profile_slug = strtolower( get_user_meta( um_profile_id(), "um_user_profile_url_slug_{$permalink_base}", true ) );
|
||||
$current_language = ICL_LANGUAGE_CODE;
|
||||
foreach ( $array as $lang_code => $arr ) {
|
||||
$sitepress->switch_lang( $lang_code );
|
||||
$user_page = um_get_core_page( "user" );
|
||||
|
||||
$array[ $lang_code ]['url'] = "{$user_page}{$profile_slug}/";
|
||||
}
|
||||
|
||||
$sitepress->switch_lang( $current_language );
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if WPML is active
|
||||
*
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
<?php
|
||||
// Exit if accessed directly
|
||||
if ( ! defined( 'ABSPATH' ) ) exit;
|
||||
|
||||
|
||||
add_filter( "um_localize_permalink_filter", "um_localize_permalink_filter", 10, 2 );
|
||||
function um_localize_permalink_filter( $profile_url, $page_id ) {
|
||||
|
||||
if ( function_exists('icl_get_current_language') && icl_get_current_language() != icl_get_default_language() ) {
|
||||
if ( get_the_ID() > 0 && get_post_meta( get_the_ID(), '_um_wpml_user', true ) == 1 ) {
|
||||
$profile_url = get_permalink( get_the_ID() );
|
||||
}
|
||||
}
|
||||
|
||||
// WPML compatibility
|
||||
if ( function_exists('icl_object_id') ) {
|
||||
$language_code = ICL_LANGUAGE_CODE;
|
||||
$lang_post_id = icl_object_id( $page_id , 'page', true, $language_code );
|
||||
|
||||
if($lang_post_id != 0) {
|
||||
$profile_url = get_permalink( $lang_post_id );
|
||||
}else {
|
||||
// No page found, it's most likely the homepage
|
||||
global $sitepress;
|
||||
$profile_url = $sitepress->language_url( $language_code );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $profile_url;
|
||||
|
||||
}
|
||||
|
||||
add_filter('um_core_page_id_filter','um_core_page_id_filter');
|
||||
function um_core_page_id_filter( $page_id ){
|
||||
|
||||
return $page_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds correct profile url to WPML language switcher
|
||||
*/
|
||||
add_filter( 'icl_ls_languages','um_core_page_wpml_permalink', 10, 1 );
|
||||
function um_core_page_wpml_permalink( $array ){
|
||||
global $sitepress;
|
||||
if( ! um_is_core_page("user") ) return $array;
|
||||
if( ! defined("ICL_LANGUAGE_CODE") ) return $array;
|
||||
if( ! function_exists('icl_object_id') ) return $array;
|
||||
|
||||
// Permalink base
|
||||
$permalink_base = UM()->options()->get( 'permalink_base' );
|
||||
|
||||
// Get user slug
|
||||
$profile_slug = strtolower( get_user_meta( um_profile_id(), "um_user_profile_url_slug_{$permalink_base}", true ) );
|
||||
$current_language = ICL_LANGUAGE_CODE;
|
||||
foreach ( $array as $lang_code => $arr ) {
|
||||
$sitepress->switch_lang( $lang_code );
|
||||
$user_page = um_get_core_page("user");
|
||||
|
||||
$array[ $lang_code ]['url'] = "{$user_page}{$profile_slug}/";
|
||||
}
|
||||
|
||||
$sitepress->switch_lang( $current_language );
|
||||
|
||||
return $array;
|
||||
}
|
||||
@@ -349,18 +349,5 @@ function um_core_is_local() {
|
||||
*/
|
||||
function um_get_url_for_language( $post_id, $language ) {
|
||||
//um_deprecated_function( 'um_get_url_for_language', '2.0', 'UM()->external_integrations()->get_url_for_language' );
|
||||
if ( ! UM()->external_integrations()->is_wpml_active() )
|
||||
return '';
|
||||
|
||||
$lang_post_id = icl_object_id( $post_id, 'page', true, $language );
|
||||
|
||||
if ( $lang_post_id != 0 ) {
|
||||
$url = get_permalink( $lang_post_id );
|
||||
} else {
|
||||
// No page found, it's most likely the homepage
|
||||
global $sitepress;
|
||||
$url = $sitepress->language_url( $language );
|
||||
}
|
||||
|
||||
return $url;
|
||||
return UM()->external_integrations()->get_url_for_language( $post_id, $language );
|
||||
}
|
||||
Reference in New Issue
Block a user