如何在WooCommerce缺货预定按钮修改代码中排除预购商品?
解决方案
你只需要在原有判断条件中追加预购商品的排除判断即可。官方WooCommerce Pre-Orders插件会给启用预购功能的商品存储专属标识字段,我们可以通过读取该字段区分普通缺货预定商品和预购商品,避免误修改预购商品的按钮文本。
修改后完整代码
add_filter( 'woocommerce_product_single_add_to_cart_text', 'wc_ninja_change_backorder_button', 10, 2 ); function wc_ninja_change_backorder_button( $text, $product ){ // 同时满足:商品处于缺货预定状态、且未启用预购功能,才修改按钮文本 if ( $product->is_on_backorder( 1 ) && $product->get_meta( '_wc_pre_order_enabled' ) !== 'yes' ) { $text = __( 'Reserve', 'woocommerce' ); } return $text; }
补充说明
如果需要同时修改商品列表页的加入购物车按钮文本,可以追加一行过滤器挂载,逻辑和上述代码完全一致:
add_filter( 'woocommerce_product_add_to_cart_text', 'wc_ninja_change_backorder_button', 10, 2 );
内容的提问来源于stack exchange,提问作者pcmila
相关产品推荐
相关产品推荐

