用自定义按钮替换访客的 WooCommerce 店面搜索框

Replace WooCommerce storefront search box for guests by a custom button

在 woocommerce 店面 header 上,对于 not-logged 用户,我想用 2 个金色 bootstrap 按钮替换搜索框区域:“登录”、“注册”(如Whosebug landing-page header),将客人发送到我自定义的 login/register 网址。在您的帮助下,我得到了 PHP 和 CSS 片段,可以很好地隐藏 no-logged 用户的搜索框,但我不知道下一步该怎么做:

add_filter( 'body_class', 'add_body_class_for_guest' );
function add_body_class_for_guest( $classes ) {
    // Only for non logged users
    if( ! is_user_logged_in() ) {
        $classes[] = 'not-logged';
    }
    return $classes;
}

CSS:

.not-logged .site-header .site-search { display: none; }

要用链接到登录/注册页面的按钮替换店面搜索框,对于未登录的用户,您可以使用以下内容 (所以不要使用您的代码并删除 CSS 规则):

add_action( 'storefront_header', 'custom_storefront_header_search', 1 );
function custom_storefront_header_search() {
    // Only for non logged users
    if( ! is_user_logged_in() ) {
        remove_action( 'storefront_header', 'storefront_product_search', 40 ); // remove search box
        add_action( 'storefront_header', 'storefront_product_search_replacement', 40 ); // Replacement
    }
}

// Function that displays the replacement buttons
function storefront_product_search_replacement() {
    ?>
    <div class="site-search login-register">
        <a href="<?php echo wc_get_page_permalink('myaccount'); ?>" class="button"><?php _e('Login / Register', 'woocommerce'); ?></a>
    </div>
    <?php
}

代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。

Now you will be able to add your custom buttons html code and style them as you like…


访客用户将获得以下内容: