Select Page

WooCommerce 要如何實現關店?如果你想要一天開店八小時,或是一個月開店25天

雖然說網路上開店最棒的優勢就是可以 24 x 7 的不間斷賺錢,但是如果是線下升級成線上的店家們,會需要配合公司政策,一天開店八小時,假日不開店或是配合結帳時間,月底不收單等


WooCommerce 實現關店的想法

  • 建立關店時間表
  • 依照時間表判斷是否要開店
  • 關店的狀態是要把 WooCommerce 的訂單按鈕都關閉以及隱藏起來
  • 顯示訊息告知使用者現在關店中

WordPress Plug or Themes PHP 撰寫

以下示範每個月25號到月底作帳時間內,不讓客戶下單的寫法

// 啟動商店的假日檔
add_action ('init', 'qqqtips_woocommerce_holiday_mode'); 
 
// Disable Cart, Checkout, Add Cart 
// 將下單相關的按鈕都關閉
function qqqtips_woocommerce_holiday_mode() {
   //remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
   //remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
   //remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
   //remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
	add_filter( 'woocommerce_is_purchasable', '__return_false'); // 
   add_action( 'woocommerce_before_main_content', 'qqqtips_wc_shop_disabled', 5 );
   add_action( 'woocommerce_before_cart', 'qqqtips_wc_shop_disabled', 5 );
   add_action( 'woocommerce_before_checkout_form', 'qqqtips_wc_shop_disabled', 5 );
}
 
 
// Show Holiday Notice 
// 每月25號關帳,次月1號打開
function qqqtips_wc_shop_disabled() {
	$qqq_today = number_format(date('d'));
	if( $qqq_today >= 25 && $qqq_today <= 31) {
		wc_print_notice( '店家已經關帳,請下個月再來!', 'error');
	}
} 

參考資料

Open Close Store Hours for WooCommerce


相關文章

Visual Studio 2022 正式上市,新增功能介紹

Visual Studio 2022 正式上市,新增功能介紹

Visual Studio 2022 正式上市,新增功能介紹
Comments

Written by

在試用了將近半年的 Visual Studio 2022 Preview,終於等到了 Visual Studio 2022 正式版上市的這天,看了 Visual Studio 2022 的新功能 介紹,重點落於

  • Visual Studio IDE 執行程序改成 64 位元,意思是可以執行大型的程式,在也不用受限於 4GB 的限制了
  • IntelliCode 的更新,在 Visual Studio 2019 更新中有導入的 AI IntelliCode 在 Visual Studio 2022 變成預設,打些關鍵字按下 TAB 就可以讓 AI 接手完成後續的程式碼,大幅度的增加寫程式的速度
  • 文字搜尋的速度,比起舊版本,快了 3 倍速度
  • 原生支援 .NET 6 ,.NET 6 重寫了所有的 FileStream ,採用了動態PGO技術,C# 特別有感覺,以及.NET多平臺應用程式UI(Multi-platform App UI,MAUI),可以寫一次程式碼給桌面和行動裝置使用,.NET 6 效能大躍進

AI 時代來了,用語音寫程式,只要寫幾行程式,AI 機器人自動就幫你完成後面的 Code,這些都已經實現了,未來已經到來.

每三年一次改版,每次都有非常好的體驗,配合 .NET 6 的推出,效能又網上了不只一階,檔案存取的效率增加了15-30%,JSON Class 轉換的效率也有明顯的改善,Hot Reload in ASP.NET 和 C++,更好的支援 Linux 和 GitHub。

相關的文章

隔離即高效:探索 Python 虛擬環境的專業實踐

我們常常在網路上安裝依賴 Python 的程式碼,但總是會有一推的衝突存在,Python 的虛擬環境(virtual environment)則是一個非常有用的工具,它可以在不同的專案間建立隔離的 Python 執行環境,可以確保不同專案的依賴庫互不干擾,讓 Python 的開發更加簡單、安全。以下將詳細介紹 Python 虛擬環境的概念、創建和使用方法。 虛擬環境的重要性 在沒有虛擬環境的情況下,Python 的庫和模組都會安裝在全局環境中。這會導致幾個問題:...

手把手教學安裝 anything-llm (不使用 docker)

手把手教學安裝 anything-llm (不使用 docker)

AnythingLLM是一款全功能的應用程序,支持使用商業或開源的大語言模型(LLM)和向量數據庫建構私有ChatGPT。用戶可以在本地或遠端運行該系統,並利用已有文檔進行智能對話。此應用將文檔分類至稱為工作區的容器中,確保不同工作區間的資料隔離,保持清晰的上下文管理。...

清除 Nginx cache 的服務 – 使用NodeJS

如果你有用 Nginx 的快取服務,無論是 fastcgi or proxy cache,都會遇到很難有一套真正好用的清除工具,這邊示範一套自己開發的清除工具,也支援多伺服器使用 安裝必要的套件 你先需要有nodejs,沒有的人先去官網安裝下,安裝完畢的人,先建立一個目錄,並且輸入以下指令,安裝必要的套件 npm init -y npm install express 建立一個 Node.js App 可以命名為 app.js,內容如下,會建立一個小型的伺服器,用來處理 http 的請求,並且刪除指定的目錄 const...

讓 WooCommerce 支援列印出貨訂單明細 Print Invoice & Delivery Notes

讓 WooCommerce 支援列印出貨訂單明細 Print Invoice & Delivery Notes

在 woocommerce 中,收到客戶的訂單,常常需要列印一張出貨訂單附給客戶,或者是寄一個EMAIL,裡面含有出貨明細,又或者是要用到物流,需要列印物流資訊,貼在紙箱外殼中,找了 一下好用的 woocommerce plugs 覺得這套簡單且功能強大,就拿出來推薦給大家下。

自動將發票 PDF 附加到 WooCommerce 電子郵件
從訂單管理頁面可以下載 PDF 發票/裝箱單
批量生成PDF發票/裝箱單
完全可定制的 HTML/CSS 發票模板
讓客戶可以從“我的帳戶”頁面下載發票
可以自定義發票編號順序
可用語言:捷克語、荷蘭語、英語、芬蘭語、法語、德語、匈牙利語、意大利語、日語、挪威語、波蘭語、羅馬尼亞語、俄語、斯洛伐克語、斯洛文尼亞語、西班牙語、瑞典語和烏克蘭語

訂單可以建立PDF發票,以及檢貨單
讓你的 wordpress 可以支援 SVG (Scalable Vector Graphics) – 使用 Plug-in(SVG Support)

讓你的 wordpress 可以支援 SVG (Scalable Vector Graphics) – 使用 Plug-in(SVG Support)

推薦使用 SVG Support

WordPress 在最近的版本,因為 SVG 的漏洞,預設是禁止使用 SVG 的圖形檔案的,但客戶們的 LOGO 以前都習慣用 SVG 的檔案格式,因為向量檔可以讓 LOGO 無損的呈現,我們可以透過自己修改 functions.php 來讓 WordPress 支援 SVG 檔案,但這樣要怕會有安全問題,雖然你可以藉由限制讓使用者無法自由的上傳 SVG 檔案,但我認為最快的方法還是利用別人開發好的 Plug-in 來實現 SVG
功能較佳,所以這次推薦 SVG Support。

瞭解 SVG 漏洞

最主要的問題是,SVG 文件是可以添加 JavaScript 的,一但有添加 JavaScript 的能力時候,就可以寫程式去抓取 cookie 造成隱私權漏洞或是執行有害的程式碼。

參考資料

Manually Enable SVG File Uploads

如何在 Ubuntu 20 中啟用免費的 https 憑證,使用 Let’s Encrypt 以及 Nginx

現在網站沒有支援 https ,肯定是扣分項目,並且想要支援 https 已經不像是以往,一定需要去購買 SSL 憑證,大多數應用下會採用 Let’s Encrypt 的服務,本文是要介紹 Ubuntu 下替 Nginx 安裝 SSL 憑證的方法。


安裝憑證的準備工作

首先確認是否有網域名稱,也就是在DNS伺服器中擁有對應的 A Record,舉例如下:

  • A Record rain.tips XXX.XXX.XXX.XXX
  • A Record www.rain.tips XXX.XXX.XXX.XXX

並且在 Nginx 中已經設定好該網站,可以在瀏覽器中打入 rain.tips 後可以正常瀏覽


安裝 Let’s Encrypt

首先安裝憑證機器人 certbot 來支援安裝 SSL 憑證

sudo apt install certbot python3-certbot-nginx

利用 Certbot 取得憑證

找出的你主機名稱,也就是在 Nginx 中的 conf 檔案內定義的 Server Name,像我的是rain.tips,然後利用下面的指令建立憑證,-d 後面要帶入網域的名稱

sudo certbot --nginx -d rain.tips -d www.rain.tips

接下來就可以跟著交談視窗一步一步建立起憑證

  • 輸入 Email
  • 同意合約
  • 是否要公開 EMAIL
  • 設定 http 是否要轉址到 https,建議一般情況下是設定 Redirect

到此就大功告成了,有防火牆的記得要去開啟下


檢查 Certbot 的自動更新是否正常

因為 Let’s Encrypt 每三個月要 renew 一次,現在的 Certbot 都會自動的啟用自動更新,但避免出意外,可以利用下面指令確認下是否有設定正常。

sudo systemctl status certbot.timer

手動更新憑證

sudo certbot renew --dry-run

確認憑證狀態

sudo certbot certificates

到此就大功告成,參考資料如下

How To Secure Nginx with Let’s Encrypt on Ubuntu 20.04

How to Secure Nginx with Let’s Encrypt On Ubuntu 20.04 / 18.04