WooCommerce:更改多个产品的添加到购物车按钮文本并重定向到结帐
WooCommerce: Change add to cart button text for multiple products with a redirection to checkout
在 WooCommerce 中,我需要为两个产品更改一些内容:
- 添加到购物车按钮(两种产品不同)
- 跳过购物车结帐(两种产品相同)
我找到了这段有效的代码。但仅针对一个产品 ID:
add_filter( 'woocommerce_product_single_add_to_cart_text', 'custom_cart_button_text' );
add_filter( 'woocommerce_product_add_to_cart_text', 'custom_cart_button_text' );
function custom_cart_button_text($text) {
global $woocommerce;
global $post;
$post_id = $post->ID;
if($post_id == 11359){
$text = __( 'Ja ik word kompaan', 'woocommerce' );
}
return $text;
}
add_filter ('woocommerce_add_to_cart_redirect', 'redirect_to_checkout');
function redirect_to_checkout($url) {
global $woocommerce;
if ( isset( $_POST['add-to-cart'] ) ) {
$product_id = (int)$_POST['add-to-cart'];
if($product_id == 11359){
$url = $woocommerce->cart->get_checkout_url();
}
}
return $url;
}
如何制作代码段的第一部分(重命名添加到购物车文本)以便我可以使用它两次;每个产品 ID 都需要不同的添加到购物车文本。
以及如何将第二个产品 ID 添加到代码段的第二部分(因此它会跳过两个产品 ID 的购物车)
谢谢!
您可以将以下内容用于 2 个不同的产品按钮文本,并重定向到结帐 (您将在其中定义 2 个产品 ID):
add_filter( 'woocommerce_product_single_add_to_cart_text', 'custom_addtocart_button_text', 10, 2 );
add_filter( 'woocommerce_product_add_to_cart_text', 'custom_addtocart_button_text', 10, 2 );
function custom_addtocart_button_text( $button_text, $product ) {
// 1st product
if ( $product->get_id() == 11359 ) {
$button_text = __( 'Ja ik word kompaan', 'woocommerce' );
}
// 2nd product
elseif ( $product->get_id() == 11362 ) {
$button_text = __( 'Something else', 'woocommerce' );
}
return $button_text;
}
add_filter ( 'woocommerce_add_to_cart_redirect', 'custom_redirect_to_checkout' );
function custom_redirect_to_checkout( $url ) {
if ( isset( $_POST['add-to-cart'] ) && $_POST['add-to-cart'] > 0 ) {
$product_id = intval( $_POST['add-to-cart'] );
if( in_array( $product_id, array( 11359, 11362 ) ) ){
$url = wc_get_checkout_url();
}
}
return $url;
}
代码进入活动子主题(或活动主题)的 functions.php 文件。它应该有效。
在 WooCommerce 中,我需要为两个产品更改一些内容:
- 添加到购物车按钮(两种产品不同)
- 跳过购物车结帐(两种产品相同)
我找到了这段有效的代码。但仅针对一个产品 ID:
add_filter( 'woocommerce_product_single_add_to_cart_text', 'custom_cart_button_text' );
add_filter( 'woocommerce_product_add_to_cart_text', 'custom_cart_button_text' );
function custom_cart_button_text($text) {
global $woocommerce;
global $post;
$post_id = $post->ID;
if($post_id == 11359){
$text = __( 'Ja ik word kompaan', 'woocommerce' );
}
return $text;
}
add_filter ('woocommerce_add_to_cart_redirect', 'redirect_to_checkout');
function redirect_to_checkout($url) {
global $woocommerce;
if ( isset( $_POST['add-to-cart'] ) ) {
$product_id = (int)$_POST['add-to-cart'];
if($product_id == 11359){
$url = $woocommerce->cart->get_checkout_url();
}
}
return $url;
}
如何制作代码段的第一部分(重命名添加到购物车文本)以便我可以使用它两次;每个产品 ID 都需要不同的添加到购物车文本。 以及如何将第二个产品 ID 添加到代码段的第二部分(因此它会跳过两个产品 ID 的购物车)
谢谢!
您可以将以下内容用于 2 个不同的产品按钮文本,并重定向到结帐 (您将在其中定义 2 个产品 ID):
add_filter( 'woocommerce_product_single_add_to_cart_text', 'custom_addtocart_button_text', 10, 2 );
add_filter( 'woocommerce_product_add_to_cart_text', 'custom_addtocart_button_text', 10, 2 );
function custom_addtocart_button_text( $button_text, $product ) {
// 1st product
if ( $product->get_id() == 11359 ) {
$button_text = __( 'Ja ik word kompaan', 'woocommerce' );
}
// 2nd product
elseif ( $product->get_id() == 11362 ) {
$button_text = __( 'Something else', 'woocommerce' );
}
return $button_text;
}
add_filter ( 'woocommerce_add_to_cart_redirect', 'custom_redirect_to_checkout' );
function custom_redirect_to_checkout( $url ) {
if ( isset( $_POST['add-to-cart'] ) && $_POST['add-to-cart'] > 0 ) {
$product_id = intval( $_POST['add-to-cart'] );
if( in_array( $product_id, array( 11359, 11362 ) ) ){
$url = wc_get_checkout_url();
}
}
return $url;
}
代码进入活动子主题(或活动主题)的 functions.php 文件。它应该有效。