如何获取WooCommerce产品价格

时间:2020-05-20 作者:Mark Gallemit Pacatang

我试图操纵基于度量的定价。如何获取产品价格。我这里有示例代码。

if( isset( $_POST[\'height_option\'] ) )
    $cart_item[\'custom_data\'][\'height\'] = sanitize_key( $_POST[\'height_option\'] );

if( isset( $_POST[\'width_option\'] ) )
    $cart_item[\'custom_data\'][\'width\'] = sanitize_key( $_POST[\'width_option\'] );

// Make calculation and save calculated  price
if( isset( $_POST[\'height_option\'] ) && isset( $_POST[\'width_option\'] ) ){
    $height      = (int) sanitize_key( $_POST[\'height_option\'] );
    $width       = (int) sanitize_key( $_POST[\'width_option\'] );

    if( $width > 0 && $height > 0 ){
        $total_price = ( ( $height ) * ( $width ) ) * 1; // <== The calculation (need to multiply by product price)
        $cart_item[\'custom_data\'][\'price\'] = round($total_price, 2); // Save the price in the custom data
    }
}

return $cart_item;

1 个回复
最合适的回答,由SO网友:Abuzer Firdousi 整理而成

如果您正在寻找更新购物车项目价格。您可以尝试:

add_action( \'woocommerce_cart_loaded_from_session\', array(\'update_cart_item_price\' ),10);

public function update_cart_item_price( $cart_obj ) {
//  This is necessary for WC 3.0+
if ( is_admin() && ! defined( \'DOING_AJAX\' ) ){
    return;
}

if( !WC()->session->__isset( "reload_checkout" )) {

    foreach ( $cart_obj->get_cart() as $key => $value ) {
        
        $_product = wc_get_product($value[\'product_id\']);
        $get_price = $_product->get_price();
        $price_to_add = 10; // write your logic for this

        $value[\'data\']->set_price($get_price + $yards);
    }
  }
}

相关推荐