by Rain Chu | 11 月 12, 2021 | PHP, woocommerce, wordpress
雖然說網路上開店最棒的優勢就是可以 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
相關文章
by Rain Chu | 11 月 11, 2021 | VisualStudio, 程式
Visual Studio 2022 正式上市,新增功能介紹
在試用了將近半年的 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。
by Rain Chu | 11 月 10, 2021 | woocommerce, wordpress
在 woocommerce 中,收到客戶的訂單,常常需要列印一張出貨訂單附給客戶,或者是寄一個EMAIL,裡面含有出貨明細,又或者是要用到物流,需要列印物流資訊,貼在紙箱外殼中,找了 一下好用的 woocommerce plugs 覺得這套簡單且功能強大,就拿出來推薦給大家下。
自動將發票 PDF 附加到 WooCommerce 電子郵件
從訂單管理頁面可以下載 PDF 發票/裝箱單
批量生成PDF發票/裝箱單
完全可定制的 HTML/CSS 發票模板
讓客戶可以從“我的帳戶”頁面下載發票
可以自定義發票編號順序
可用語言:捷克語、荷蘭語、英語、芬蘭語、法語、德語、匈牙利語、意大利語、日語、挪威語、波蘭語、羅馬尼亞語、俄語、斯洛伐克語、斯洛文尼亞語、西班牙語、瑞典語和烏克蘭語
by Rain Chu | 11 月 9, 2021 | wordpress
推薦使用 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
by Rain Chu | 11 月 9, 2021 | Linux, Nginx, SERVER, Ubuntu
現在網站沒有支援 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
近期留言