当你添加一个自定义的 “我的账户” 标签时,或者当你对默认的 “我的账户” 标签顺序不满意时(仪表板-订单-下载-地址-付款方式-账户详情-退出),你可能需要改变一下。

这里有两个超级简单的代码来实现这一点:重新排列 “我的账户” 标签,这样你的客户就不会错过超级重要的 “我的账户” 菜单。

我的账户

PHP片段1:移动单个标签

是简单、干净的WooCommerce定制。一旦你看了一下片段2,你就会明白为什么。

在这种情况下,我们想把 “订单” 放在 “下载 ” 和 “地址” 之间:使用array_slice() 把现有的标签阵列分成两部分,在一个特定的位置插入我们的标签,然后合并起来。

add_filter( 'woocommerce_account_menu_items', 'bbloomer_add_link_my_account' );
 
function bbloomer_add_link_my_account( $items ) {
   $save_for_later = array( 'orders' => __( 'Orders', 'woocommerce' ) ); // 保存标签
   unset( $items['orders'] ); // 移除标签
   $items = array_merge( array_slice( $items, 0, 2 ), $save_for_later, array_slice( $items, 2 ) ); // 在位置2后放置标签
   return $items;
}

PHP片段2:为多个标签重新排序

当你需要重新排列整个 “我的账户” 标签菜单时,切开数组将一个标签放在中间已经不够了。你必须用一个自定义的顺序重新定义整个数组,并将其返回。

默认的数组是这样的。

$items = array(
      'dashboard'       => __( 'Dashboard', 'woocommerce' ),
      'orders'          => __( 'Orders', 'woocommerce' ),
      'downloads'       => __( 'Downloads', 'woocommerce' ),
      'edit-address'    => _n( 'Addresses', 'Address', (int) wc_shipping_enabled(), 'woocommerce' ),
      'payment-methods' => __( 'Payment methods', 'woocommerce' ),
      'edit-account'    => __( 'Account details', 'woocommerce' ),
      'customer-logout' => __( 'Logout', 'woocommerce' ),
);

因此,在这个片段中,我们只是简单地使用了一个类似的数组,只是进行了自定义排序。

add_filter( 'woocommerce_account_menu_items', 'bbloomer_add_link_my_account' );
 function bbloomer_add_link_my_account( $items ) {
   $newitems = array(
      'dashboard'       => __( 'Dashboard', 'woocommerce' ),
      'customer-logout' => __( 'Logout', 'woocommerce' ),
      'edit-address'    => _n( 'Addresses', 'Address', (int) wc_shipping_enabled(), 'woocommerce' ),
      'edit-account'    => __( 'Account details', 'woocommerce' ),
      'orders'          => __( 'Orders', 'woocommerce' ),
      'downloads'       => __( 'Downloads', 'woocommerce' ),   
      'payment-methods' => __( 'Payment methods', 'woocommerce' ),
   );   
   return $newitems;
}

你可以把PHP片段放在你的子主题 functions.php 文件的底部。

归类于: