私は親戚のビジネスのためのeコマースストアを作成しています。彼はユーザーがウェブサイト上でパーソナライズしなければならない製品を持っています。私は別のページをコーディングしています。これにより、ユーザーはこれを行うことができます。これは、ストアにリンクして、カートが完了したときにカートにアイテムを追加します。 数量に追加するのではなく、追加された各製品がパーソナライズされているので、各製品をカートに個別に追加するソリューションと、カート内のアイテムの価格を変更するソリューションが見つかりました。Woocommerce-カートの中で同じ商品の価格が異なる
WooCommerce: Add product to cart with price override? https://businessbloomer.com/woocommerce-display-separate-cart-items-product-quantity-1/
問題は、すべての項目が変更されたことであるだけでなく、最後の1が追加されました。 例:ユーザーが名前を付けたボールペンをデザインします。価格は$ 4です。ユーザーは彼女の名前でゲルペンを設計する。カートには2つの別々のペンが計算された価格で表示されますが、追加された最後のペンだけでなく、すべてのペンで価格が上昇します。製品ビルディングページから送信された価格に基づいて、最後に追加された商品の価格を設定する方法を見つける必要があります。これまでのところ、私が試したことは何も働いていません。
このサイトでは変数の商品が動作しません。
//To display a product separately every time it is added
function bbloomer_split_product_individual_cart_items($cart_item_data, $product_id){
$unique_cart_item_key = uniqid();
$cart_item_data['unique_key'] = $unique_cart_item_key;
return $cart_item_data;
}
add_filter('woocommerce_add_cart_item_data','bbloomer_split_product_individual_cart_items', 10, 2);
add_filter('woocommerce_is_sold_individually', '__return_true');
//To change the item price programmatically. Changes all items with the same ID
//I need it to change only the last one added.
//Set to retrieve new price from the customizing page
add_action('woocommerce_before_calculate_totals', 'add_custom_price', 10, 1);
/**
* @param $cart_obj
*/
function add_custom_price($cart_obj) {
ob_start();
include 'createbb.php';
global $custom_price;
$target_product_id = 17;
// This is necessary for WC 3.0+
if (is_admin() && ! defined('DOING_AJAX'))
return;
foreach ($cart_obj->get_cart() as $key => $value) {
if ($value['product_id'] == $target_product_id) {
$value['data']->set_price($custom_price);
}
}
ob_end_clean();
}
WooCommerceの実装についてのより詳細な情報を提供し、変数として製品を統合しようとしてください。 –
私はコードを追加しました。彼らはすべて同じIDを共有しているので、私は個々の "ペン"を個別に価格設定する方法を知らない。 –