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。

相關的文章

Windows設置LLM環境變數的幾種方法

LLMs Server 還是需要放在 Linux 環境中比較好,但開發階段常常用 Windows 在開發,多數人使用的 Shell export 就沒法使用 export OPENAI_API_KEY="sk-...". Windows中設置LLM環境變數的幾種方法解決方法 使用命令列 CMD set OPENAI_API_KEY=sk-... 使用 PowerShell [Environment]::SetEnvironmentVariable("OPENAI_API_KEY",...

PyAutoGUI-自動控制你的電腦

可以在 windows, mac, Linux 上使用,自動地透過滑鼠鍵盤來控制你的電腦畫面,還支援螢幕截圖 簡易使用方法 安裝 pyautogui pip install pyautogui 使用 pyautogui import pyautogui 螢幕截圖 pyautogui.screenshot('screenshot.png') 滑鼠控制 pyautogui.moveTo(100, 100, duration = 1.5) #用1.5秒移動到x=100,y=100的位置 pyautogui.dragTo(100,...

用EXCEL製作專業的Python圖

用EXCEL製作專業的Python圖

啟用 Excel 中的 Python 在輸入框中,輸入 =py 然後按下 TAB ,就會進入下圖,儲存格前面變成有綠色框的PY,這時就可以輸入 Python 程式碼了 繪製企鵝圖的公式 # 台積電股價的小提琴圖 stock2303 = xl("A1:G218", headers=True) sns.set_theme (font='SimHei', font_scale=0.8) plt.figure(dpi=300) plt.ylabel('量', rotation = 0, labelpad=15)...

讓 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