Woocommerce storefront_cart_link 覆盖无效
Woocommerce storefront_cart_link override has no effect
我正在尝试 trim 作为 Storefront 的子项为自定义 WooCommerce 主题记下一些内容。我首先替换 storefront_header_cart
函数以删除完整的购物车列表,它按预期工作:
if ( ! function_exists( 'storefront_header_cart' ) ) {
function storefront_header_cart() {
if ( storefront_is_woocommerce_activated() ) {
if ( is_cart() ) {
$class = 'current-menu-item';
} else {
$class = '';
}
?>
<ul id="site-header-cart" class="site-header-cart menu">
<li class="<?php echo esc_attr( $class ); ?>">
<?php storefront_cart_link(); ?>
</li>
</ul>
<?php
}
}
}
然后我想更改内容 link 本身中的文本。我做了完全相同的事情来覆盖默认店面行为...
if ( ! function_exists( 'storefront_cart_link' ) ) {
function storefront_cart_link() {
?>
<a class="cart-contents" href="<?php echo esc_url( wc_get_cart_url() ); ?>" title="<?php esc_attr_e( 'View your shopping cart', 'storefront' ); ?>">
<?php /* translators: %d: number of items in cart */ ?>
<span class="count"><?php echo wp_kses_data( sprintf( _n( '%d item', '%d items', WC()->cart->get_cart_contents_count(), 'storefront' ), WC()->cart->get_cart_contents_count() ) ); ?></span>
</a>
<?php
}
}
...但它没有任何明显的作用。完整原文link显示:
<a class="cart-contents" href="http://localhost/cart/" title="View your shopping cart">
<span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">$</span>0.00</span> <span class="count">0 items</span>
</a>
为什么会出现这种不一致的行为?
- WordPress:5.1.1
- WooCommerce:3.5.6
- 店面:2.4.5
这似乎与店面 header 购物车计数上的 ajaxified 购物车片段 有关。
- 首先完全清空购物车并检查它是否与缓存无关。
- ajaxified cart fragments涉及的hook是
woocommerce_add_to_cart_fragments
,所以你应该尝试在Storefront源代码中找到一些相关的hook函数代码。
在 header 购物车数量上查看 Ajax 周围的相关主题:
我正在尝试 trim 作为 Storefront 的子项为自定义 WooCommerce 主题记下一些内容。我首先替换 storefront_header_cart
函数以删除完整的购物车列表,它按预期工作:
if ( ! function_exists( 'storefront_header_cart' ) ) {
function storefront_header_cart() {
if ( storefront_is_woocommerce_activated() ) {
if ( is_cart() ) {
$class = 'current-menu-item';
} else {
$class = '';
}
?>
<ul id="site-header-cart" class="site-header-cart menu">
<li class="<?php echo esc_attr( $class ); ?>">
<?php storefront_cart_link(); ?>
</li>
</ul>
<?php
}
}
}
然后我想更改内容 link 本身中的文本。我做了完全相同的事情来覆盖默认店面行为...
if ( ! function_exists( 'storefront_cart_link' ) ) {
function storefront_cart_link() {
?>
<a class="cart-contents" href="<?php echo esc_url( wc_get_cart_url() ); ?>" title="<?php esc_attr_e( 'View your shopping cart', 'storefront' ); ?>">
<?php /* translators: %d: number of items in cart */ ?>
<span class="count"><?php echo wp_kses_data( sprintf( _n( '%d item', '%d items', WC()->cart->get_cart_contents_count(), 'storefront' ), WC()->cart->get_cart_contents_count() ) ); ?></span>
</a>
<?php
}
}
...但它没有任何明显的作用。完整原文link显示:
<a class="cart-contents" href="http://localhost/cart/" title="View your shopping cart">
<span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">$</span>0.00</span> <span class="count">0 items</span>
</a>
为什么会出现这种不一致的行为?
- WordPress:5.1.1
- WooCommerce:3.5.6
- 店面:2.4.5
这似乎与店面 header 购物车计数上的 ajaxified 购物车片段 有关。
- 首先完全清空购物车并检查它是否与缓存无关。
- ajaxified cart fragments涉及的hook是
woocommerce_add_to_cart_fragments
,所以你应该尝试在Storefront源代码中找到一些相关的hook函数代码。
在 header 购物车数量上查看 Ajax 周围的相关主题: