如何用PHP将span中的标题替换为纯文本和用户名(或diplay名称)



这是我的情况。

我在wooccommerce中使用扁平主题。在它的主题自定义程序中,我只需选中选项框,即可在登录前显示"登录/注册",并在登录后显示名称(图片中的TEST(。https://i.stack.imgur.com/lUfjw.jpghttps://i.stack.imgur.com/hSh4c.jpg

这些选项在桌面上可以正常工作,但在移动网站上则不然。这些选项不适用。我想我在这里唯一的选择就是JavaScript。但我对HTML和JavaScript几乎一无所知。https://i.stack.imgur.com/W30oZ.jpghttps://i.stack.imgur.com/S5RST.jpg

我的问题是

  1. 如何在登录手机之前将"登录"更改为"登录/注册">
  2. 在手机上登录后,我如何使其显示名称而不是我的帐户

我真的想节省成本,所以插件对我来说是不可行的选择。我也更喜欢这个默认标题,因为创建自定义菜单时我不能使用弹出登录/注册屏幕。我在网上搜索过,到目前为止没有一个解决方案有效。

这些是我提到的账户标题的元素。

登录之前。

<a href="https://www.mywebsite.com/my-account/" class="nav-top-link nav-top-not-logged-in " data-open="#login-form-popup">
<span>
Login / Register </span>
</a>

登录后.

<a href="https://www.mywebsite.com/my-account/" class="account-link account-login
" title="My account">
<span class="header-account-title">
test        </span>
</a>

@MihaiT是对的。四处挖掘。

由于你使用的是一个构建器,所以很难在细节上提供帮助,在如何设置它的过程中有很多变量在起作用。但所有主题都使用header.php来显示所有标题中一致的内容,尤其是登录/注销的详细信息。你可以看看你的header.php,然后玩一下这样的东西:

<?php global $current_user; wp_get_current_user(); ?>
<?php if ( is_user_logged_in() ) { ?>
<div class="account-details">
<p class="username">Welcome back <?php echo $current_user->display_name; ?></p>
<a href="<?php echo wp_logout_url( get_permalink() ); ?>">&nbsp;|&nbsp;Logout</a>
</div>

<?php } else { ?>
<div class="account-details">
<a href="/login/">Login&nbsp;|</a>
<a href="/register/">&nbsp;Register</a> 
</div>
<?php } ?>

您需要对子主题进行任何更改,以免用主题更新覆盖您所做的任何更改。如果您无意创建自定义主题,那么这种方法可能不适合您,最好联系主题开发人员寻求支持。主题和构建器的大问题是,当你需要一些不包括在内的东西时,你就陷入了困境。

上面的代码使用了一个基本的if/else和一个wordpress函数来检测用户是否登录。因为你是在后台运行的,所以你可以访问用户名等有用的数据。你需要弄清楚登录/注销的链接,但这是一般的理论。

现在,我找到了第一个问题的临时解决方案。我使用额外的CSS来替换文本。

.nav-top-link.nav-top-not-logged-in  span {
display: none;
}
.nav-top-link.nav-top-not-logged-in:after {
content: 'Login / Register';
}

导航顶部链接导航顶部未登录是登录前的标题类别。

此外,我做了一些挖掘,找到了文件。这有2个文件。似乎该主题使用了两种不同的代码用于桌面和移动设备。(/wp-content/themes/flatsome/模板部件/标题/部分(

有一个名为element-account.php的文件。

<?php $icon_style = get_theme_mod('account_icon_style'); ?>
<?php if(is_woocommerce_activated()){ ?>
<li class="account-item has-icon
<?php if(is_account_page()) echo ' active'; ?>
<?php if ( is_user_logged_in() ) { ?> has-dropdown<?php } ?>"
>
<?php if($icon_style && $icon_style !== 'image' && $icon_style !== 'plain') echo '<div class="header-button">'; ?>
<?php if ( is_user_logged_in() ) { ?>
<a href="<?php echo get_permalink( get_option('woocommerce_myaccount_page_id') ); ?>" class="account-link account-login
<?php if($icon_style && $icon_style !== 'image') echo get_flatsome_icon_class($icon_style, 'small'); ?>"
title="<?php _e('My account', 'woocommerce'); ?>">
<?php if ( get_theme_mod( 'header_account_title', 1 ) ) { ?>
<span class="header-account-title">
<?php
if ( get_theme_mod( 'header_account_username' ) ) {
$current_user = wp_get_current_user();
echo esc_html( $current_user->display_name );
} else {
esc_html_e( 'My account', 'woocommerce' );
}
?>
</span>
<?php } ?>
<?php if($icon_style == 'image'){
echo '<i class="image-icon circle">'.get_avatar(get_current_user_id()).'</i>';
} else  if($icon_style){
echo get_flatsome_icon('icon-user');
} ?>
</a><!-- .account-link -->
<?php } else { ?>
<a href="<?php echo get_permalink( get_option('woocommerce_myaccount_page_id') ); ?>"
class="nav-top-link nav-top-not-logged-in <?php if($icon_style && $icon_style !== 'image') echo get_flatsome_icon_class($icon_style, 'small'); ?>"
<?php if( get_theme_mod('account_login_style','lightbox') == 'lightbox' && !is_checkout() && !is_account_page() ) echo 'data-open="#login-form-popup"'; ?>
>
<?php if(get_theme_mod('header_account_title', 1)) { ?>
<span>
<?php _e('Login', 'woocommerce'); ?>
<?php if(get_theme_mod('header_account_register')){
echo ' / '.__('Register', 'woocommerce');
} ?>
</span>
<?php } else {
echo get_flatsome_icon('icon-user');
} ?>
</a><!-- .account-login-link -->
<?php } ?>
<?php if($icon_style && $icon_style !== 'image' && $icon_style !== 'plain') echo '</div>'; ?>
<?php
// Show Dropdown for logged in users
if ( is_user_logged_in() ) { ?>
<ul class="nav-dropdown  <?php flatsome_dropdown_classes(); ?>">
<?php wc_get_template('myaccount/account-links.php'); ?>
</ul>
<?php } ?>
</li>
<?php } else {
fl_header_element_error( 'woocommerce' );
}
?>

还有另一个名为element-account-mobile.php的文件

<?php $icon_style = flatsome_option('account_icon_style'); ?>
<li class="account-item has-icon">
<?php if($icon_style && $icon_style !== 'image' && $icon_style !== 'plain') echo '<div class="header-button">'; ?>
<a href="<?php echo get_permalink( get_option('woocommerce_myaccount_page_id') ); ?>"
class="account-link-mobile <?php echo get_flatsome_icon_class($icon_style, 'small');?>" title="<?php _e('My account', 'woocommerce'); ?>">
<?php echo get_flatsome_icon('icon-user'); ?>
</a><!-- .account-link -->
<?php if($icon_style && $icon_style !== 'image' && $icon_style !== 'plain') echo '</div>'; ?>
</li>

最新更新