Wordpress In Menu

时间:2013-10-31 作者:Rekha Haridoss

我在WordPress设置中使用woocommerce插件。我希望菜单栏中的签出只在购物车中有东西时出现。我该怎么做?

1 个回复
SO网友:helgatheviking

您可以通过调整菜单中显示的项目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\' );

结束

相关推荐

Security and Must Use Plugins

从codex article 必须使用插件:只需将文件上载到mu插件目录即可启用,无需登录我觉得这是一个潜在的安全问题。在站点上运行插件中的任何代码之前,必须通过管理面板激活常规插件。我一直认为这是一个明智的安全预防措施,因为攻击者如果能够以某种方式将文件上载到plugins文件夹,则在运行代码之前,还必须访问和修改数据库。这个mu-plugins 文件夹似乎提供了一种简单的方法来避免这种情况。我知道WordPress开发人员比我更了解安全性,所以我想知道是否有人能解释为什么这不是一个安全漏洞。