如何根据产品类别更改WooCommerce中的“添加到篮子”按钮文本?

时间:2019-01-07 作者:Damian

我用我的活动创建了CPT,并为每个活动在WooCommerce中创建了单独的产品。现在我在代码中使用了这个短代码

<?php echo do_shortcode(\'[add_to_cart id="\'.get_field(\'event_ticket\').\'" show_price = "FALSE"]\'); ?>
用于显示每个事件上的“添加到篮子”按钮。每个事件都有产品类别“事件”,现在我想更改“添加到购物篮”按钮上的默认文本,但仅适用于那些有“事件”产品类别的产品。

我该怎么做?

1 个回复
SO网友:mrben522

您将要筛选文本。下面是core WC中构建该文本的函数。在这两种情况下$this 将是产品。

/**
 * Get the add to cart button text for the single page.
 *
 * @access public
 * @return string
 */
public function single_add_to_cart_text() {
    return apply_filters( \'woocommerce_product_single_add_to_cart_text\', $this->get_button_text() ? $this->get_button_text() : _x( \'Buy product\', \'placeholder\', \'woocommerce\' ), $this );
}

/**
 * Get the add to cart button text.
 *
 * @access public
 * @return string
 */
public function add_to_cart_text() {
    return apply_filters( \'woocommerce_product_add_to_cart_text\', $this->get_button_text() ? $this->get_button_text() : _x( \'Buy product\', \'placeholder\', \'woocommerce\' ), $this );
}
因此,您需要将过滤器添加到woocommerce_product_single_add_to_cart_textwoocommerce_product_add_to_cart_text 检查是否$this 是一个事件,如果是,则更改文本;如果不是,则返回默认文本。

相关推荐