如何在WooCommerce加入购物车按钮后添加可按页面自定义的文本
这个需求完全可以实现,以下是两种适配不同场景的实现方案,可直接部署到你的functions.php文件中:
方案1:按页面类型展示统一文本(适合同类页面共用一段文本的场景)
通过WooCommerce内置的条件标签判断当前页面类型,输出对应文本,示例代码如下:
add_action( 'woocommerce_after_add_to_cart_button', 'inserisce_testo_dopobottone' ); function inserisce_testo_dopobottone() { // 单商品详情页文本 if ( is_product() ) { $custom_text = '<div class="second_content">单商品页专属提示文本</div>'; } // 商店列表页文本 elseif ( is_shop() ) { $custom_text = '<div class="second_content">商店列表页专属提示文本</div>'; } // 商品分类页文本 elseif ( is_product_category() ) { $custom_text = '<div class="second_content">分类页专属提示文本</div>'; } // 其他场景默认文本 else { $custom_text = '<div class="second_content">默认提示文本</div>'; } echo $custom_text; }
方案2:每个商品单独配置自定义文本(适合不同商品展示不同文本的场景)
需要先给商品编辑页添加自定义输入项,再在钩子函数中调用对应配置的文本,分两步操作:
- 给商品编辑页添加自定义文本输入框
// 商品编辑页添加自定义字段面板 add_action( 'woocommerce_product_options_general_product_data', 'add_custom_text_field_for_product' ); function add_custom_text_field_for_product() { woocommerce_wp_text_input( array( 'id' => 'custom_after_addtocart_text', 'label' => '加购按钮后自定义文本', 'desc_tip' => true, 'description' => '此处填写的内容会展示在当前商品加购按钮后方', ) ); } // 保存商品自定义字段内容 add_action( 'woocommerce_process_product_meta', 'save_custom_text_field_for_product' ); function save_custom_text_field_for_product( $post_id ) { $custom_text = isset( $_POST['custom_after_addtocart_text'] ) ? sanitize_text_field( $_POST['custom_after_addtocart_text'] ) : ''; update_post_meta( $post_id, 'custom_after_addtocart_text', $custom_text ); }
- 修改原有钩子函数,调用每个商品的自定义文本
add_action( 'woocommerce_after_add_to_cart_button', 'inserisce_testo_dopobottone' ); function inserisce_testo_dopobottone() { global $post; // 获取当前商品配置的自定义文本 $custom_text = get_post_meta( $post->ID, 'custom_after_addtocart_text', true ); if ( ! empty( $custom_text ) ) { echo '<div class="second_content">' . esc_html( $custom_text ) . '</div>'; } }
部署完成后你就可以在每个商品的编辑页,单独配置对应要展示的文本内容。
内容的提问来源于stack exchange,提问作者Miner
相关产品推荐
相关产品推荐

