提问者:小点点

WooCommerce:更改多个产品的添加到购物车按钮文本,并将其重定向到结账


在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的购物车)

谢谢!


共1个答案

匿名用户

您可以使用以下两个不同的产品按钮文本和一个重定向到结账(在那里您将定义您的两个产品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;
}

代码进入函数。活动子主题(或活动主题)的php文件。它应该有效。

相关问题