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。

相關的文章

如何在WordPress中使用Object Cache Pro提升網站效能

如何在WordPress中使用Object Cache Pro提升網站效能

在處理大量數據和高流量的情況下,WordPress網站可能會面臨效能問題。這時,使用高效的緩存解決方案變得尤為重要。Object Cache Pro是一款專業級的物件緩存插件,它能夠顯著提升WordPress網站的性能和響應速度。本文將介紹如何在WordPress中安裝和配置Object Cache Pro。 安裝Object Cache Pro 步驟1:獲取插件 先從Object Cache Pro官方網站購買插件。完成後會取得授權金鑰。 步驟2:上傳並安裝插件 登入您的WordPress後台。 點擊「插件」>「新增」。...

成功移除企業郵件於垃圾郵件名單:實戰經驗分享

成功移除企業郵件於垃圾郵件名單:實戰經驗分享

在現代的商業世界中,電子郵件成為了溝通的主要渠道,但當企業的郵件被誤判為垃圾郵件並被列入黑名單時,它可能會對業務運作造成嚴重的影響。被列入黑名單不僅影響公司的信譽,還可能導致與客戶、合作夥伴和潛在業務機會之間的重要信息丟失。在此文章中,我們將與您分享實際的案例經驗,描述如何成功地將企業郵件從垃圾郵件名單中移除,並提供一套實用的策略和方法,以確保您的企業信件能夠順利地抵達收件人的收件箱。無論您是IT主管、企業管理者或只是希望了解更多關於這一議題的人,這篇文章都將為您提供寶貴的見解和建議。讓我們一起深入探討,並學習如何避免和解決這一常見的...

IIS 主機上限制 ApplicationPool 記憶體的方法

IIS 主機上限制 ApplicationPool 記憶體的方法

最近遇到 PHP 太吃記憶體的問題,我除了在php.ini 中設定 limit memory 以外,也打算在 IIS 中把總量的記憶體限制住,避免讓主機的記憶體爆滿,而當機,可以在記憶題超過限制後,把自己行程回收。 設定方法 在管理介面中,找到 「Advanced Settings」 ,進去後往下滑找到 「Private Memory Limit (KB)」 ,這邊這個數值是 KB 為主,如果希望將 Private Memory Limit (KB) 設定為 10GB,您需要將其設定為 10485760 KB 設定公式如下 10...

讓 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

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

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