php - 添加 WooCommerce 购物车链接 + 总计作为 wp_nav_menu 中的最后一个菜单项
问题描述
我正在尝试添加一个自定义 WooCommerce 购物车链接,其中包含内容计数和总成本作为菜单中的最后一个选项。
这是我目前正在使用的代码:
add_filter('wp_nav_menu_header-menu_items','custom_minicart_in_main_menu', 10, 2);
function custom_minicart_in_main_menu( $menu, $args) {
$minicart_link = '<a class="custom-minicart" href="<?php echo wc_get_cart_url(); ?>" title="<?php _e( "View Your Cart" ); ?>"><?php echo sprintf ( _n( "%d item", "%d items", WC()->cart->get_cart_contents_count() ), WC()->cart->get_cart_contents_count() ); ?> - <?php echo WC()->cart->get_cart_total(); ?></a>';
return $menu . $minicart_link;
}
问题是,唯一显示的结果是:
">cart->get_cart_contents_count() ), WC()->cart->get_cart_contents_count() ); ?> - cart->get_cart_total(); ?>
结果应该是:
Cart (#number of items) - $total cost of all products (subtotal using wc_price)
所以,像这样:
Cart (4) - $78.50
如何调整我的代码以获得所需的结果?
解决方案
wp_nav_menu() - 显示导航菜单 - 包含wp_nav_menu_{$menu->slug}_items
过滤器挂钩。
/**
* Filters the HTML list content for a specific navigation menu.
*
* @since 3.0.0
*
* @see wp_nav_menu()
*
* @param string $items The HTML list content for the menu items.
* @param stdClass $args An object containing wp_nav_menu() arguments.
*/
$items = apply_filters( "wp_nav_menu_{$menu->slug}_items", $items, $args );
因此,要回答您的问题,请使用:
function custom_minicart_in_main_menu( $items, $args ) {
// Get cart url
$link_url = wc_get_cart_url();
// Text
$link_text = sprintf( __( 'Cart (%d) - %s', 'woocommerce' ), WC()->cart->cart_contents_count, WC()->cart->get_total() );
// Link
$minicart_link = '<a class="custom-minicart" href="' . $link_url . '">' . $link_text . '</a>';
return $items . $minicart_link;
}
add_filter( 'wp_nav_menu_header-menu_items', 'custom_minicart_in_main_menu', 10, 2 );
推荐阅读
- excel - 为什么我的表格公式计算时间很长?
- javascript - 如何将数组插入嵌套的 JavaScript 对象
- java - 在这种情况下如何获得 pojos 的联合
- r - 在 API keras 模型转换后,R studio 对点击和输入的响应非常慢,为什么?
- python - 弹性搜索分页
- wordpress - WooCommerce 中的子类别永久链接
- heroku - Heroku、namecheap 和电子邮件转发
- java - 从 Mongo 集合创建 Java POJO
- javascript - React Native Navigation TopBar 图标未显示
- laravel - 使用 Eloquent 合并两个表(不使用 DB::Table)