您可以通过调整菜单中显示的项目wp_get_nav_menu_items
. 这与我在导航菜单角色插件中使用的过滤器相同。通过调整,我们可以循环浏览菜单项,并检查其中是否有指向“签出”页面的链接。从那里我们可以测试购物车是否是空的。如果两者都是真的,那么我们将从菜单中删除该项。
function wpa_120740_exclude_menu_items( $items ){ //var_dump( $items );
global $woocommerce;
if( is_admin() || ! function_exists( \'woocommerce_get_page_id\' ) ) return $items;
// Iterate over the items to search and destroy
foreach ( $items as $key => $item ) {
if( $item->object_id == woocommerce_get_page_id( \'checkout\' ) ){
$cart_contents = $woocommerce->cart->get_cart();
if( empty ( $cart_contents ) ){
unset( $items[$key] ) ;
}
}
}
return $items;
}
add_filter( \'wp_get_nav_menu_items\', \'wpa_120740_exclude_menu_items\' );