2017-09-08 13 views
1

私は親戚のビジネスのための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(); 
} 
+0

WooCommerceの実装についてのより詳細な情報を提供し、変数として製品を統合しようとしてください。 –

+0

私はコードを追加しました。彼らはすべて同じIDを共有しているので、私は個々の "ペン"を個別に価格設定する方法を知らない。 –

答えて

0

あなたが探している機能の種類は、実際には名前「製品オプション」(これは変化に異なっている)を有するように一般的です。この機能を使用すると、製品の編集ページのデザインを通じて、構成可能なアドオンを製品の価格に追加することができます。あなたがそれをはいそれを言う前に

https://woocommerce.com/products/product-add-ons/

:OpenCartのようなeコマースプラットフォームの多くでは、あなたが自由のために組み込まれた機能のこの種を持っている、しかし、オートマティックは、彼らがために充電した上で、別のボルトとしてそれを維持することにしました彼らがそれを請求するのは面倒です。本当にこれは、人々があなたにそれを貨幣化する計算された決定であると言うことができるように要求するような共通の事です。そして、はい、それはまだすべての特注をプログラムすることはまだ可能ですが、あなたは必然的にフィーチャーを支払うことを避ける以外の理由でホイールを再発明しています(他の人が作成したプラグインの無料版があります。 )。

Automatticが将来的にフックを変更すればどうなるでしょうか?コードを修正する必要があります。あなたがコードを修正する前に、コードを修正する必要があります。オプションを変更したい場合や、オプションを変更する必要があり、周囲にいない場合はどうなりますか?

最終的には、正式なプラグインを入手するか、無料の選択肢の1つを使用するかのいずれかを選択することをおすすめします。私を信頼してください。私はあなたに恵まれています。

倖田

+0

ありがとうございます。私はこれらのタイプのプラグインを考慮しましたが、サイトには非常に特殊な外観と感じがあるので購入しませんでした。これで達成できるかどうかわかりません。私はお金の無駄に終わったものを買った。彼らはそれが顧客にとってインタラクティブなステップバイステッププロセスであることを望んでいましたが、おそらく私はそれを回避することができました。 –

+0

特に、公式のテンプレートは、WooCommerceの残りのテンプレートのように上書きすることができます。あなたが実際に再コーディングしたくない部分は、実装に時間がかかりすぎるか、既に利用可能なものでは十分ではないため、管理者側のものです。私はあなたの能力を疑うことはなく、純粋に経験から引っ張るだけです。 – Kodaloid

関連する問題