獲得最新加入購物車的產品 ID.

正在檢視 4 個帖子:1-4 (共 4 個帖子)
  • 作者
    帖子
  • lmn40227
    參與者
    • 文章數量: 23
    @lmn40227
    樓主

    下面的程式碼在 success.php

    使用者點加入購物車後, 彈出下面提醒

    pop up

    $product_id = “”;

    $items = WC()->cart->get_cart();
    $product_id = end($items)[‘variation_id’];

    $product = wc_get_product( $product_id );

    $picid = $product->get_image_id();

    $feature_url = get_the_guid($picid);

    如果一個產品只加一次, 是正常的, 如果 4 個顏色分別加入購物車後, 在將其中任何一個顏色加入購物車, 獲取的 product id 都將是購物車裡位於最底下的那個產品.

    截圖中你可以看到, 我選擇了灰色, 但是跳出來的確是黑色.

    也就是下面這行程式碼給的是購物車裡最底下的那個產品的 id 而不是最新加入購物車的 id.

    $product_id = end($items)[‘variation_id’];

    我在 stack overflow 尋求幫助, 但是他們給出的最後答案還是上面這個.

    https://stackoverflow.com/questions/52281956/get-last-added-to-cart-product-id-in-woocommerce

     

    我還有一種解決方案, 但是也有問題:

    我在 functions.php 里加了這幾行程式碼:

    add_action( ‘woocommerce_add_cart_item_data’, ‘woo_custom_add_to_cart’,10,3 );

    function woo_custom_add_to_cart( $cart_item_data,$productId, $variation_id ) {

    setcookie(“newtocart”, $variation_id);
    }

     

    然後在 success.php

    $product_id = $_COOKIE[“newtocart”];

     

    用這個程式碼, 就是感覺 系統先跑了 success.php 然後才執行了 woocommerce_add_cart_item_data 這個函式. 導致就是 每次 得到的結果都是上一次加入購物車的產品 id. 第一次則為空.

    如果我依次將 4 種顏色: 紅, 白, 黃, 綠 加入到購物車.

    那麼我這 4 次獲得的產品 id  將是 :   空, 紅, 白, 黃.

     

    管理員如果對上面任何一種有解決的方法, 請告訴我下. 謝謝了.

     

     

    詩語
    管理員
    • 文章數量: 5,925
    @feibisi

    我這給個思路你試試,如果是有多種顏色的話,你應該找的不是產品 ID 而是屬性 ID ,也就是獲取到可變產品的顏色屬性 ID 。

    具體實現方式可以再 Google 下。

     

    lmn40227
    參與者
    • 文章數量: 23
    @lmn40227
    樓主

    上面的程式碼就能獲得屬性的 ID.

    只不過第一種會在 加入 已存在於購物車產品的產品發生錯誤.

     

    第二種網上給了答案是說 cookies 得等到網頁重新整理後得到.

    lmn40227
    參與者
    • 文章數量: 23
    @lmn40227
    樓主

    用 session 解決了.

正在檢視 4 個帖子:1-4 (共 4 個帖子)
  • 哎呀,回覆話題必需登入。

話題資訊

  • 當前位於:WooCommerce
  • 3 條回覆
  • 2 個參與人
  • 最後回覆:<a href="https://bbs.weixiaoduo.com/users/lmn40227/" title=" 檢視 lmn40227 的個人資料" class="bbp-author-link"><span class="bbp-author-name">lmn40227</span></a>
  • 上次活動:<a href="https://bbs.weixiaoduo.com/topic/28121/#post-28130" title=" 回覆至:獲得最新加入購物車的產品 ID.">6 年、 6 月前</a>