Woocommerce - итоговая сумма продукта с фиксированной ценой в корзине - PullRequest
1 голос
/ 29 января 2020

Мой вопрос заключается в том, как суммировать фиксированную цену с промежуточным итогом продукта. Цены на WooCommerce основаны на количестве, но я хочу подытог продукта в сумме корзины + с определенной ценой мой код:

foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        //  $cart_item['data']->set_price($custom_price);
        $_product =  wc_get_product( $cart_item['data']->get_id() );
        $getProductDetail = wc_get_product( $cart_item['product_id'] );

        $quantity_cr =  $cart_item['quantity'];
        $price = get_post_meta($cart_item['product_id'] , '_price', true);



        /*Regular Price and Sale Price*/
        //echo "Regular Price: ".get_post_meta($cart_item['product_id'] , '_regular_price', true)."<br>";
        //echo "Sale Price: ".get_post_meta($cart_item['product_id'] , '_sale_price', true)."<br>";

            $opdruk = $cart_item['thwepof_options'];
                foreach($opdruk as $cr_item) {

                     $total_price_each_prduct = $cart_item['line_total'];
                    $opdruk_value = $cr_item['value'];
                    //print_r($opdruk_value);

                    if ($opdruk_value != "Geen opdruk") {

                 $price_opdruk =  $price + 39; // this is the fixed price i want to add (not on quantity based)


                    }
                }
    }

Ответы [ 3 ]

1 голос
/ 29 января 2020

Попробуйте этот код

add_action( 'woocommerce_before_calculate_totals', 'add_custom_price', 10, 1);

function add_custom_price( $cart_object ) {

if ( is_admin() && ! defined( 'DOING_AJAX' ) )
    return;

if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
    return;

foreach ( $cart_object->get_cart() as $cart_item ) {
    ## Price calculation ##
    $price = $cart_item['data']->price * 12;

    ## Set the price with WooCommerce compatibility ##
    if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
        $cart_item['data']->price = $price; // Before WC 3.0
    } else {
        $cart_item['data']->set_price( $price ); // WC 3.0+
    }
}
}
1 голос
/ 29 января 2020

Здравствуйте, вы можете сделать это, как добавить налог / доставку / et c ... в общей стоимости

function prefix_add_price_line( $cart ) {

  $add_price = 39;

  $cart->add_fee( __( 'Vat Exempt Tax', 'yourtext-domain' ) , $add_price );

}
add_action( 'woocommerce_cart_calculate_fees', 'prefix_add_price_line' );
0 голосов
/ 29 января 2020

Вы можете попробовать использовать этот крючок:

function filter_woocommerce_cart_product_subtotal( $product_subtotal, $product, $quantity, $instance ) { 
    // some logic
    return $product_subtotal; 
}; 

// add the filter 
add_filter( 'woocommerce_cart_product_subtotal', 'filter_woocommerce_cart_product_subtotal', 10, 4 ); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...