[WooCommerce] 消費滿額升級會員等級的概念做法

本篇文章更新時間:2021/03/01
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣新台幣 贊助支持。


剛好看到 WordPress 馬來西亞社團有人分享這個標題的概念做法,覺得有意思來筆記一下~

FB馬來西亞社團討論

討論串連結: Facebook社團

如果需求這麼剛好是「每一張訂單有消費滿額,人工驗證後,下次消費就享有OO會員等級的購物折扣」,那這個功能很直接就提供了!

原理是通過 WooCommerce 完成訂單事件,來檢查訂單是否滿額,滿額的話就給該使用者提升會員等級。

情境上很簡單,但也是一種可能,能夠讓開發者再延伸去製作符合更複雜的操作。

目前這樣的設計有一些不足的地方,像是:

  1. 如果金流沒主動觸發完成訂單狀態的事件,當下第一單足額消費,馬上再下第二單的時候因為沒人工審查過,所以還不會有新會員等級套用。
  2. 訂單如有完成後才發生的退貨與取消等操作,這權限也要手動拿回來。
  3. 這樣的提升權限操作是看「單一訂單」,所以如果消費者分成好幾個單來下的話,每張訂單都不滿足條件,但全部訂單一起看是滿足的,有機會被客訴XD

不過既然說這是概念做法,當然就是留給有更延伸需求的人自己想辦法來開發補足拉~

要做到統計訂單消費金額與消費者關係的情境,勢必有延伸的開發,市面上的外掛不一定能滿足條件,那自己手動的時候也要想完整一點,免得上線後才出現一堆問題就糟糕了!


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

參與討論

  1. kakadong
  2. Chun

2 則留言

  1. wc_get_customer_total_spent( $user_id ) 可以直接得知客戶一共花了多少錢,而且是統計已付款訂單的狀態,但是包含稅金和運費。
    因此如果需要總金額不包含稅金和運費,就”一定” 需要重寫SQL.
    反查 wc_get_customer_total_spent 後,就可以大概知道Woocommerce 如何抓出客戶花了多少錢。 因此我們修改一下SQL 變可以得到無稅金和運費的總花費了。
    附上SQL.

    SELECT SUM(pm2.meta_value – (pm3.meta_value + pm4.meta_value))
    FROM $wpdb->posts as p
    LEFT JOIN {$wpdb->postmeta} AS pm ON p.ID = pm.post_id
    LEFT JOIN {$wpdb->postmeta} AS pm2 ON p.ID = pm2.post_id
    LEFT JOIN {$wpdb->postmeta} AS pm3 ON p.ID = pm3.post_id
    LEFT JOIN {$wpdb->postmeta} AS pm4 ON p.ID = pm4.post_id
    WHERE pm.meta_key = ‘_customer_user’
    AND pm.meta_value = ‘” . esc_sql( $user_id ) . “‘
    AND p.post_type = ‘shop_order’
    AND p.post_status IN ( ‘wc-” . implode( “‘,’wc-“, $statuses ) . “‘ )
    AND pm2.meta_key = ‘_order_total’
    AND pm3.meta_key = ‘_order_tax’
    AND pm4.meta_key = ‘_order_shipping’

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon