WooCommerce

WooCommerce目录模式Catalog Mode(2021)

WooCommerce目录模式是指隐藏所有跟购物相关的功能,比如价格、购物车、结算页面、订单详情页面等等。网站刚建好时可能需要测试运行,或者单纯的想用WooCommerce做一个目录网站的,但保留未来增加购物功能的可能性,这段代码都会对你有所帮助。

WooCommerce目录模式代码

代码应放在child theme的functions.php中使用,做了五件事:

  • 不对管理员生效
  • 隐藏加入购物车的按钮
  • 将购物车和结算页面重定向到商店首页
  • 隐藏所有价格
  • 将订单和下载菜单从dashboard链接中删除
add_action( 'template_redirect', 'sola_wc_catalog_mode' );
  
function sola_wc_catalog_mode() {

    // Do nothing if the logged in user is a administrator
    if( is_user_logged_in() && current_user_can('manage_options') ){
        return;
    }

    // Remove add to cart button from archive pages and single product pages
    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
    
    // Redirect cart and checkout pages to the shop page
    if( is_cart() || is_checkout() ){
        wp_redirect(wc_get_page_permalink('shop'));
        exit;
    }

    // Hide all prices, including the products in a widget
    add_filter( 'woocommerce_get_price_html', function(){
        return '';
    });

    // Remove orders and downloads items from dashboard links
    add_filter ( 'woocommerce_account_menu_items', function( $menu_items ){
        unset( $menu_items['orders'] );
        unset( $menu_items['downloads'] );
        return $menu_items;
    });
}

需要注意的是,我的账户首页的介绍里,默认带有订单链接,如果你需要移除,请将templates\myaccount\dashboard.php拷贝到主题目录下覆盖修改。

WooCommerce目录模式--我的账户链接