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 文件。它应该有效。