gpt4 book ai didi

php - 如果 WooCommerce 中的用户是 "logged in",请更改帐户菜单的措辞

转载 作者:行者123 更新时间:2023-12-04 15:24:14 25 4
gpt4 key购买 nike

我正在使用 WooCommerce 和 Storefront 的子主题。
我有一个名为“桌面二级右上角EN”的二级菜单,其中有一个指向“我的帐户”的链接。
我的问题是:如果客户已登录,如何更改“我的帐户”项目的措辞?
我想这样做而不必在后台创建另一个菜单,当然也不需要安装插件。
enter image description here
enter image description here
我应该能够使用类似的东西:

function menu_add_admin_buttons( $items, $args ) {
if( 'secondary' == $args['theme_location'] ) {
$btn_format = '<li><a href="%s">%s</a></li>';
if ( is_user_logged_in() ) {
$btn = sprintf($btn_format, admin_url('profile.php'), __('Your Profile') );
} else {
$btn = sprintf($btn_format, wp_login_url(), __('Log In') );
}
return $items . $btn;
}
}
$menu_filter = 'wp_nav_menu_' . sanitize_title("Desktop secondary top right EN") . '_items';
add_filter($menu_filter, 'menu_add_admin_buttons', 20, 2);
但它必须根据我的需要进行定制。我怎样才能做到这一点?

最佳答案

我这样做了,它似乎工作正常。
我使用标准钩子(Hook):wp_setup_nav_menu_item过滤菜单项。
我检查它是否不是后台(管理模式)以及 woocommerce 是否处于事件状态。
然后,如果 url 是“我的帐户”菜单的 url,我会根据当前语言进行更改。

add_filter( 'wp_setup_nav_menu_item','my_account_setup' );
function my_account_setup( $item ) {
if ( ! is_admin() && class_exists( 'woocommerce' ) ) {
if ( $item->url == esc_url( wp_login_url() ) || strpos($item->url, '/my-account-2-2/') !== false ){
if ( is_user_logged_in() ) {
if(get_locale() == 'fr_FR') {
$item->title = 'MON COMPTE';
} else {
$item->title = 'MY ACCOUNT';
}
} else {
if(get_locale() == 'fr_FR') {
$item->title = 'LOGIN';
} else {
$item->title = 'LOGIN';
}
}
}
}
return $item;
}

关于php - 如果 WooCommerce 中的用户是 "logged in",请更改帐户菜单的措辞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62640878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com