無庫存允許下單 Backorder 修改提示

無庫存允許下單 Backorder 修改提示

在一個金流 Discord 討論留言板上看到有網友在詢問這個問題,看了看也忽然覺得這個修改應該不至於太難,改一改以後有可能某一天會用到。這種無庫存下單就像是預購的 FU 吧?只是顯示提示修改,或許可以像似應用在預購的模式,話不多說,立即開始:

無庫存允許下單 Backorder 修改提示

修改完之後會長這樣,原本會顯示「無庫存允許下單」一個很奇怪難以理解的意思,一般做法就是用翻譯的去改最快,但是就是要變換通知的話,當物品有庫存後又要顯示提示,這時程式就派上用場。

add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 1, 2); function wcs_custom_get_availability( $availability, $_product ) { 
	// 有庫存與沒庫存的時候通知
	if ( $_product->is_in_stock() && ! $_product->backorders_allowed() ) { 
		$availability['availability'] .= __('目前有現貨', 'custom'); } 
	if ( $_product->is_in_stock() && $_product->backorders_allowed() ) { 
		$availability['availability'] = __('當有現貨時我們會立即通知您', 'custom'); }
	// 沒庫存的時候通知
	if ( ! $_product->is_in_stock() ) { $availability['availability'] .= __('當有現貨時我們會立即通知您', 'custom'); } 
	return $availability; }
無庫存允許下單 Backorder 修改提示

但是上面的只有顯示在「商品頁」沒改到購物車的地方,購物車會也會有一串一樣的字,接著要加上下面這串就能一起改到了。

// 翻譯購物車提示
function uni_transfer_wccart_backorder_text ( $text ) {
         if ($text == '允許無庫存下單'){$text = '當有現貨時我們會立即通知您';}
                return $text;
         }
add_filter( 'gettext', 'uni_transfer_wccart_backorder_text' );

就這樣,很簡單的

WooCommerce 清空購物車返回訊息+網址修改

WooCommerce 清空購物車返回訊息+網址修改

隨手筆記,我覺得我不知道民國幾年還會有機會用到這串修改語法。

這次的案例是客戶想修改清空購物車後,會有一顆按鈕「返回商店」網址是 /shop/

我個人是覺得客戶客製很多小地方其實不太必要,但遇到了就是得修改 🙁

WooCommerce 清空購物車返回訊息+網址修改
上圖是已經修改完成的樣子,心好累。

所幸修改很簡單,兩段語法可以解決這個部分,主要是利用「woocommerce_return_to_shop_redirect」與「woocommerce_return_to_shop_text」就可以處理了。

語法如下:

//修改返回SHOP網址
add_filter( 'woocommerce_return_to_shop_redirect', 'uni_woo_return_to_shop_button_modify' );
function uni_woo_return_to_shop_button_modify() {
    $url = 'https://www.your-url.com'; 
    return $url;
}

//修改按鈕文字
add_filter('woocommerce_return_to_shop_text', 'uni_woo_shop_button_text_modify');
function uni_woo_shop_button_text_modify() {
    $shop_button_text = "回到首頁"; 
    return $shop_button_text;
}

woocommerce_return_to_shop_redirect 負責處理網址的修改,預設是「/shop」商品頁面,我們直接改網址就可以了。

Wordfence 干擾影響登入錯誤題示訊息翻譯

Wordfence 干擾影響登入錯誤題示訊息翻譯

對,你沒有看錯,我也沒有寫錯,我今天要說的是「Wordfence」這套安全防火牆外掛影響到了 WooCommerce 的登入錯誤提示訊息,預設 WC 示有翻譯的,但不知道為什麼安裝了 Wordfence 後會影響到該字串的翻譯,都會變強制英文的。

Wordfence 干擾影響登入錯誤題示訊息翻譯
就很莫名其妙,你即使找遍了 WC 的翻譯都是正確無誤的

今天我們只要用 Code Snippets 插入以下程式碼就好了

function uni_wc_login_error_translation( $translated, $original, $domain ) {
    
    switch ($original) {
        case '<strong>ERROR</strong>: The username or password you entered is incorrect. <a href="%2$s" title="Password Lost and Found">Lost your password</a>?':
            $translated = '<strong>錯誤</strong>: 使用者的帳號或者密碼錯誤 <a href="%2$s" title="忘記密碼?">忘記密碼</a>?';
            break;
    }
    
    return $translated;
}

add_filter( 'gettext', 'uni_wc_login_error_translation', 10, 3 );

以上很好理解,就直接抓取那串字串並且翻譯替代:

case ‘<strong>ERROR</strong>: The username or password you entered is incorrect. <a href=”%2$s” title=”Password Lost and Found”>Lost your password</a>?‘:

紅字就是要抓取的字串,今天我們的兇手就是這一串的語法,調整一下

$translated = 後面的就是要翻譯的文字填上

Wordfence 干擾影響登入錯誤題示訊息翻譯

是不是很簡單呢?

翻譯 WooCommerce 移除購物車商品跳出英文提示

翻譯 WooCommerce 移除購物車商品跳出英文提示

這個有點奇怪,原本以為 WooCommerce 中文語系應該都有翻譯的,卻沒有在其翻譯檔案裡找到這個字串,只好透過一些語法來達到此方式。

翻譯 WooCommerce 移除購物車商品跳出英文提示
這個是原本跳出來的 POPUP 視窗提示,上頭寫著「Are you sure you want to remove this item from cart?」

我們今天要透過 Code Snippets 去翻譯,避免動到 WC 的程式,不然每次更新又要被蓋掉了,很簡單,在這裡面我們加上以下語法:

// 翻譯購物車提示
function uni_transfer_wccart_text ( $text ) {
         if ($text == 'Are you sure you want to remove this item from cart?'){$text = '你要將此商品從購物車移除嗎?';}
                return $text;
         }
add_filter( 'gettext', 'uni_transfer_wccart_text' );

接著啟動它,就可以完成翻譯囉

翻譯 WooCommerce 移除購物車商品跳出英文提示
是不是很簡單呢?
WordPress 網站瘋狂被機器人駭客 TRY 密碼不堪其擾? 關了它啦!

WordPress 網站瘋狂被機器人駭客 TRY 密碼不堪其擾? 關了它啦!

最近齁,我發現有幾個管理的網站有外掛只要沒有更新在最新狀態,有一些是不能隨便更新的,結果它有一些漏洞產生,就會有機會被網路上的駭客機器人掃描並且攻擊,通常都是瘋狂被 TRY 後台試圖要打進來,我就遇過客戶密碼太簡單被 TRY 出來,被進來放了一堆木馬。

然後客戶對於預防勝於治療這件事永遠都學不乖,總是要幫其善後處理,其實直接關閉了這個功能就好了,正常狀況下不會常需要重置密碼的,直接給它關掉啦,一了百了。不過這方式不適合有大量使用者會員需要登入使用的喔!很適合一些中小企業管理環境單純不複雜的,甚至有專屬人員在管理的。

很簡單,適用於所有 WordPress 網站

// 移除密碼重置的連結文字
function uni_remove_lostpassword_text ( $text ) {
         //if ($text == 'Lost your password?'){$text = '';}
		if ($text == '忘記密碼?'){$text = '';}
                return $text;
         }
add_filter( 'gettext', 'uni_remove_lostpassword_text' );

// 重置密碼關閉並且轉址
function uni_disable_lost_password() {
    if (isset( $_GET['action'] )){
        if ( in_array( $_GET['action'], array('lostpassword', 'retrievepassword') ) ) {
            //wp_redirect( wp_login_url(), 301 );
			wp_redirect( '/?p=xxx' );
            exit;
        }
    }
}
add_action( "login_init", "uni_disable_lost_password" );

我都有註解了,這兩段透過 Code Snippet 新增一組直接啟用就可以生效了。

if ($text == ‘忘記密碼?’){$text = ”;} 這段解釋意思是偵測頁面上的 忘記密碼? 字眼,並且替換成空白或者任何你想換的字,今天我們是要移除,所以就用 ‘ ‘ 包起來就好了。我有留一串註解是給英文介面的 WordPress,自己看狀況切換使用或者自由發揮即可。

wp_redirect( ‘/?p=xxx’ ); 其中的 xxx 就是請到頁面中,滑鼠指到 “編輯” 就會看到網址有一串類似
wp-admin/post.php?post=xxx 這種編號,這邊是設定點了重置密碼連結或者手動輸入重置密碼網址強制過來後要強制轉址到哪的設定。

/wp-login.php?action=lostpassword or /wp-login.php?action=retrievepassword 這都可以強制進入重置密碼,也就是說這種通常都是機器人或者熟悉 WordPress 的人會用的進入方式,它是 action 行為,所以我們要將其關閉掉。

上面有註解的 //wp_redirect( wp_login_url(), 301 ); 意思是直接透過網址進來的就轉到登入頁面,我覺得這有點脫褲子放屁,等於直接影響到那種有用 WPS Hide Login 登入位置的,但我還是留著給有需要的人。

Plesk 更新 Obsidian 後 WordPress 更新編輯動作錯誤 502 修復方式

Plesk 更新 Obsidian 後 WordPress 更新編輯動作錯誤 502 修復方式

最近一台一台主機陸續更新跟進新版 Plesk,為得就是將所有客戶網站更新 PHP 版本至 7.3

更新完後開始陸續有客戶反應在操作 WordPress 後,發現有跳 Error 502 bad Gateway 之問題,原以為是 Cloudflare CDN 造成的

後來仔細檢查後,問題是出在更新後的 Nginx 之設定檔 Nginx.conf 資料少了緩衝區資料設定

解法有兩種,我各別在這筆記以免自己再度遇到又忘掉,或許能幫上一些人

這問題似乎常發生在使用 PHP 7.3 的 WordPress 上面

Plesk 更新 Obsidian 後 WordPress 更新編輯動作錯誤 502 修復方式

【解決方式一】適用於 Plesk 主控後臺沒辦法使用 SSH 的人

檢查 FTP 上的 錯誤日誌 proxy_error_log 有出現類似以下錯誤:

[error] 14790#0: *188 upstream sent too big header while reading response header from upstream, client: 203.0.113.2, server: subdomain.example.com, request: “POST /admin_catalog.php HTTP/1.1”, upstream: “http://10.0.0.1:7080/admin_catalog.php”, host: “subdomain.example.com”, referrer: “http://subdomain.example.com/admin_catalog.php”

進到 Plesk 後臺,找到有問題的網站,找到 PHP 設定 > 看是使用那一種 PHP 運行版本,若為 fastcgi ,往下找到 其他指令 > 貼上以下程式碼

fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;

找到 Apache 與 nginx 設定 > 往下找到 其他 Nginx 指令 > 貼上以下程式碼

proxy_buffers 8 16k;
proxy_buffer_size 32k;

Plesk 更新 Obsidian 後 WordPress 更新編輯動作錯誤 502 修復方式

【解決方式二】適用使用 SSH 可全域宣告

連線進 SSH,並輸入 sudo su 取得權限,再輸入 vi /etc/nginx/nginx.conf 進行編輯

Plesk 更新 Obsidian 後 WordPress 更新編輯動作錯誤 502 修復方式

找到 http { 這段程式碼宣告處:

Plesk 更新 Obsidian 後 WordPress 更新編輯動作錯誤 502 修復方式

然後在 } 之前的底部位置插入以下程式碼(記得按 Instert 鍵):

proxy_buffers 8 16k;
proxy_buffer_size 32k;
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;

就會像下圖這樣:

Plesk 更新 Obsidian 後 WordPress 更新編輯動作錯誤 502 修復方式

完成後按一下 ESC 鍵,輸入 :wq 儲存離開

最後請輸入 service nginx restart 重新啟動即可

即將到來的 SSL 普及化 - SEO 優化 | 網站設計 | 網站架設

即將到來的 SSL 普及化

來聊聊關於 SSL,最多上課學生卡住的關鍵問題。我知道一堆人,包括正在看的人大多看到這留言動態就直接往下滑沒興趣了掰,但還是要講一下(實在很煩)

放著不管無所謂,但未來我保證你會發現這件事。一般情況下,你會看到你在逛某些購物網站,網址綠色的有鎖頭寫著 安全,之後在九月份的 Chrome 瀏覽器改版-69 後,綠色鎖頭只會顯示一個鎖頭而不再顯示「安全」這意思是?

代表終於到了一個有超過八成網站都已經有 SSL 傳輸安全協定的時刻,沒裝的人沒差,因為接下來十月會再改版一次 Chrome 70,你會發現所有 http 開頭的網站都寫著「不安全」。

-----------------------

干我屁事?嘿喔~沒錯,沒在經營網站的人的確都是干我屁事這樣,只是你開始會一直注意到你逛的購物網站、論壇等等的地方,網址很明顯的告訴你「這個網站不安全」就是隱約的在對使用者潛移默化的教育,不安全的網站以後不要來,上面的產品服務可能都有不安全的問題(相信我,真的有網友真的這樣覺得)這樣未來影響的不單是使用者心理層面,更間接影響到整個公司品牌產品的銷售。

因此,上課時第一件事教的就是 SSL 的申請及安裝,步驟很簡單,也很無腦。那麼 SSL 分為那幾種?

1. DV(Domain validated)網域認證
2. OV(Organization validated)組織認證
3. EV(Extended validation)延伸認證

一般使用者用 DV 就已足矣,曾經我很北七在很早的時候買過 EV 認證,結果它審查無敵嚴格,一年那時要五六千吧,超貴的,純粹就是想要網址列綠色的顯示「THE UNICORN INC.」之類的假掰到爆炸的顯示,但你必須要提供類似營登統編、公司行號設立資訊、身份認證等等的…

參考連結:https://tw.godaddy.com/help/ev-ssl-2199

最後我一年浪費了那些錢,因為沒審過。回想起來有點北七,但也是一個很有趣的經驗。

-----------------------

然而 SSL 帶來的 https:// 網址對 SEO 的幫助有效嗎?坦白說是無庸置疑的,連我們的老大哥 Google 都說會優先收錄網站上的 https:// 正確頁面,http:// 就是比別人晚一點,就像是遊樂園的 VIP Fast Pass 一樣下流,多花一點錢多做一點事就可以優先享受到它帶來的幫助。

Google 表單自動通知 - 獨角獸工坊 | 代客架站 | Wordpress 架設 | SEO 優化

Google 表單自動通知

Google 的免費表單一直都是許多利用網站接案的站長們必備工具。透過這個免費的資源,我們可以讓設計一個讓客戶更簡單的填寫詢問單進而產生互動而提昇成交的機會,但是有很多人知道怎麼弄表單,每天都要不斷的抽空看一下,有時一忙起來了,連詢問單都忘了看有沒有新的詢問,幾天後想起來一看,結果發現過好幾天了,客人也跑了,簡直欲哭無淚啊!

 

Edwin 在這邊提供一個基本簡易教學,教會你不用安裝什麼東西及程式,只要照著步驟點一點,就可以在詢問單有新的詢問時寄信通知你,你再去看客人詢問內容即可。

 

Google 表單自動通知 - 獨角獸工坊 | 代客架站 | Wordpress 架設 | SEO 優化

圖一、登入你的 Google 帳號,並連到你自己的表單頁面,右上角紅框處鉛筆修改按下去。

 

Google 表單自動通知 - 獨角獸工坊 | 代客架站 | Wordpress 架設 | SEO 優化

圖二、按下回覆這個分頁選項進行切換。

 

Google 表單自動通知 - 獨角獸工坊 | 代客架站 | Wordpress 架設 | SEO 優化

圖三、會看到有個綠色的小圖示,這是 Excel 試算表的功能,請按下去。

Google 表單自動通知 - 獨角獸工坊 | 代客架站 | Wordpress 架設 | SEO 優化

圖四、找到上排的「工具」,並選擇「通知規則」

 

Google 表單自動通知 - 獨角獸工坊 | 代客架站 | Wordpress 架設 | SEO 優化

圖五、跳出視窗請按下紅框標示的「新增其他通知規則」

 

Google 表單自動通知 - 獨角獸工坊 | 代客架站 | Wordpress 架設 | SEO 優化

圖六、照著紅框處設定,分別是「有人提交表單時」以及「電子郵件 ─ 立即」選起來,按下儲存。

 

Google 表單自動通知 - 獨角獸工坊 | 代客架站 | Wordpress 架設 | SEO 優化

圖七、會看到設定成功會有這樣的畫面,按下完成即可。

 

Google 表單自動通知 - 獨角獸工坊 | 代客架站 | Wordpress 架設 | SEO 優化

圖八、你自行測試一下,是否填完表單會收到通知,這就是通知信的樣子。

Google 表單自動通知 - 獨角獸工坊 | 代客架站 | Wordpress 架設 | SEO 優化
※ 2017 – 02 更新:新版 Google 表單只要從回覆那邊選擇打勾即可 ※

我需要 SSL 嗎?- 獨角獸工坊 | 代客架站 | Wordpress 架設 | SEO 優化

我需要 SSL 嗎?

對於一般使用者自行架站者來說,若自己承租的主機商有提供 SSL 服務,建議直接向主機商購買比較省時省力。

因為若透過第三方購買,你必須要知道怎麼去生成金鑰並匯入 SSL 的憑證簽署程序,最後再獲得簽署完成並安裝上去後,接下就會是更麻煩的事了,你必須要解決關於 WordPress 上的 Mixed 混合內容(有些 Java script、圖片走 http:// 有些則是走 https:// )通常嚴重會造成因為 WP 自動轉址這些內容的開頭導致無限迴圈,輕者只是裝了拿不到綠鎖頭。

當然,有幾種方式可以教會你快速取得免費的 SSL 認證,但某些時候大多數人會不知所措到底那裡做錯了,一直無法取得 SSL 認證。在我們的《網站競爭力:佈局》這進階課程內我們會教會你們兩套方式,分別是購買安全評分較高的 SSL 以及免費但安全評分較低的 SSL 之取得安裝方式。

最重要的還是,裝 SSL 到底對你網站有啥米幫助?Google 僅僅輕描淡寫的說,會給予這些有安裝 SSL 傳輸安全協定的網站給予一些排名上輕微的提昇,對於一般只是提供產品展示的網站上其實影響不大,若您是電子商務、社群網站、資料收集等相關的網站站長,這部份就不得不重視一下啦~