2016-03-22 10 views
0

この質問のWooCommerce: Add product to cart with price override?では、カート内のすべての商品の価格を変更することができます。WooCommerceの特定の商品タイプのカート内容を変更しますか?

私が必要とするのは、「オークション」という特定のカスタムタイプの商品のみを変更し、残りの商品は変更しないことです。ここで

は、私が使用するコードです::

add_action('woocommerce_before_calculate_totals', 'add_custom_price'); 

function add_custom_price($cart_object) { 
    $custom_price = 10; // This will be your custome price 
    foreach ($cart_object->cart_contents as $key => $value) { 
     $value['data']->price = $custom_price; 
    } 
} 

私が試した::

if ($value['product_type'] == 'auction') { 
    $value['data']->price = $custom_price; 
} 

答えて

0

を私が正しくrememeber場合、$value['data']は、製品のオブジェクトです。にあるものを見てもらうために

if($value['data']->is_type('simple')){ 
    // a simple product 
} elseif($value['data']->is_type('variable')){ 
    // a variable product 
} 

あなたは常にvar_dump($cart_object)を使用するか、またはより良いまだerror_log(json_encode($cart_object))WP_DEBUG_LOGを有効にする必要があります)ことを忘れないでください:

は、だから、is_type()メソッドを使用することができるはずです変数。

+0

あなたは正しいですが、これはカスタム製品タイプではうまくいかず、わかりません!手伝って頂けますか? – Yamona

+0

これが正しい場合(私が忙しかったのでテストできませんでした)、適切に作成されたカスタム製品タイプでうまく動作するはずです。質問を編集してより多くのコードを共有してください。また、あなたがあなたの質問に投稿したコードとは非常に異なる 'is_type()'メソッドを試したことを確認してください。 – helgatheviking

関連する問題