改變 WooCommerce 註冊使用者的預設角色

WooCommerce 預設會將註冊的使用者角色設為顧客(Customer),但有時候可能會因為一些行銷的需求,或是某種原因,希望將改變預設的使用者角色。如果你只是單純地修改一般設定中的新使用預設角色,是不會有任何作用的。

wp-new-user-default-role
設定->一般設定

不過 WooCommerce 提供了一個 filter 讓你可以改變預設的註冊使用者角色。這邊我們將新使用者的角色設為 WP 一般設定中的預設角色。或是你可以直接設定角色的ID(例如vip)。

如何手動將 WordPress 從本機轉移到伺服器

在本機端開發 WordPress 網站可以加速你的開發流程。在之前的文章中我們提到了如何使用 DesktopServer 來建構本機端開發環境,當你在本機端完成開發後,下一步即是將你修改完成的網站轉移到伺服器上。當然你可以透過一些插件,例如 Duplicator 來進行這項工作,不過延伸日前提到的 WordPress 備份基本概念,這次的教學將使用上次提到的方式來手動進行網站的轉移。

準備工作

在開始之前,我們假設你已經有一個本機端的開發環境,同時有一個支援 WordPress 的伺服器環境。另外,請確認你可以透過 FTP 來連線到你的伺服器,如此才能將本機的檔案上傳到伺服器。本教學的伺服器以支援cpanelc環境的主機為範例。

步驟1:匯出本機端資料庫資料

若使用 DesktopServer 來架站,則內建即會安裝phpmyadmin,你可以使用它來進行資料庫管理。

開啟 DesktopServer 後,可以在左下角找到 Sites 連結,點擊後會開啟 DesktopServer 內建的網頁。

desktopserver_sites

Sites 頁面除了顯示目前你安裝的站台清單外,還提供了一些開發和管理工具,像是 PHPMyAdmin、phpinfo 資訊、Mailbox Viewer 等。這邊請點選 PHPMyAdmin。

desktopserver_sites_phpmyadmin

進入 phpmyadmin 管理介面後,請選擇您要匯出的資料庫,並點擊匯出。

phpmyadmin_export

選擇快速匯出來匯出全部的資料表

quick_export

 

2. 上傳檔案到伺服器

通常伺服器提供商都會提供 WordPress 快速安裝,透過快速安裝可以快速安裝一個 WordPress 網站,可省去建立資料庫等步驟。因此當你連到伺服器時,應該就會看到一開始安裝的檔案。

因為使用者建立的檔案僅存在wp-content目錄中,所以我們只要上傳這個目錄即可。

filezilla

 

3.匯入資料庫

TBD

4.修改網址

TBD

 

[WordPress 教學] – 你應該知道的 WordPress 備份基本概念

在架設或是管理 WordPress 網站時,有一個動作一定是你不可避免的,就是網站的轉移,不管你是從本機轉移到伺服器,或是從伺服器轉移到本機,這都是每個網站開發者或是維護者一定會接觸到的工作。

關於 WordPress 備份和還原,目前市面上其實有不少的插件或服務來協助你處理這項工作,包括:

這些外掛各自提供了不同的功能,像是可以設定備份的頻率、備份的位置、還原等功能。

不過今天要談的是基本功,也就是如何手動來處理備份和還原的工作。我覺得這是非常基本,也相當重要的,因爲有時候難免遇到一些插件無法處理的狀況,像是主機的限制,或是檔案大小的限制,導致網站的備份無法完成,這時候知道如何手動處理就顯得相當重要了,因此我覺得這是在使用這些外掛之外必須要學會的。你仍然可以使用外掛來進行備份或還原,不過懂的如何手動處理,在你遇到問題時將會有很大的幫助。

要備份什麼?

網站資料那麼多,我到底要備份什麼?其實只要把握兩個原則,就可以保證你的網站資料的完整性:

  1. 檔案
  2. 資料庫資料

WordPress 檔案目錄結構

備份的第一個重點就是檔案,檔案存在於你的本機或是主機上,當安裝完 WordPress 後,你應該會看到如下圖的檔案目錄結構,我們可以將其分爲兩大類

  • 使用者建立的內容: 包含 wp-content 底下的全部資料夾和檔案,包含了主題、插件、上傳的資料、以及其他由插件產生的檔案
  • 核心檔案:除了 wp-content 以外的資料夾和檔案

screen-shot-2016-11-11-at-12-08-41-am

其中最重要的當然就是 wp-content 這個資料夾,因為它包含了所有使用者建立的內容,當遺失時是無法回復的,因此在備份時可以單獨備份此目錄即可,其他的資料夾或是檔案都是可以重新下載或是建立的。若你使用插件來進行備份,你可以選擇只備份 wp-content 這個目錄,或是備份全站的檔案。

註:網站管理者或是插件可能或修改.htaccess,如果需要的話可以自行備份此檔案,但因為這個檔案也是具可回復性,遺失的話其實不是很嚴重,只是也許要花點時間修改成你原本的設定。

如何備份資料庫檔案

除了檔案外,另一個很重要的備份重點就是資料庫的資料,資料庫的資料包含了整個網站的內容,其重要性當然更是不可言喻。若你是在本機開發可以使用一些GUI 程式來管理資料庫,像是 Sequel Pro (Mac) 或是 phpmyadmin。

這邊我們以 Sequel Pro 做範例

當你透過 Sequel Pro 連上你的資料庫,從 File ->Export 可開啟匯出介面,匯出格式請選擇SQL, 並同時匯出結構與資料,如此日後才能使用此檔案來還原網站。

sequelpro

 

以上就是 WordPress 備份的基本功,其實並不難。只要掌握兩大原則:檔案資料庫資料,備份其實不是那麼困難的事。

 

 

WooCommerce 教學 – 如何正確客製化 WooCommerce

常常看到有網友詢問,要怎麼修改 WooCommerce 的某個頁面,例如結帳頁面(Checkout Page),我的帳戶頁面(My Account Page),所以特地將個人的經驗整理出來,希望大家能夠學到正確的修改方式,下次遇到別的問題時,同樣可以依循著相同的方式來修改。這些方式不只是適用在WooCommerce, 同樣的概念其實也可以套用在修改主題或是其他的插件。透過本篇文章,你將會了解到:

1.如何正確客製化 WooCommerce (Best Practice)
2.如何複寫 WooCommerce 樣板 (Templates)
3.如何透過 Action/Filter 來修改內容顯示
4.如何避免因為更新而遺失修改內容

大原則:不要直接修改 WooCommerce 的核心

所謂核心指的是 plugins/woocommerce 目錄底下所有的檔案,這點其實是是適用於所有的 WordPress 主題和插件,因為 WordPress 的主題和插件的更新是很頻繁的,如果直接修改插件本身的檔案,當你更新了新的版本時,原本的修改就會被覆蓋掉了,除非你先備份原本的版本,同時在你的修改加上註記,或是透過版本管理軟體(git/subversion)來記錄你的修改,即使如此,日後的更新絕對是你的另一個夢魘。

如果不能修改插件本身,那要如何客製化 WooCommerce 呢?

別擔心,你有的困擾,別人一定也有。

你可以透過以下兩種方式,來客製化  WooCommerce。

1.覆寫 templates

WooCommerce 的頁面都是透過樣板(templates)來呈現的,你可以在 plugins/woocommerce/templates 找到這些檔案。基本上你要修改的頁面,都可以在這邊找到。但是還記得上面說過的原則嗎?不要直接修改插件。WooCommerce 設計了一套機制,讓你可以複寫這些樣板,複寫的方式就是把templates的檔案,複製到你的主題(或子主題)目錄下,切記,複製的時候只複製你需要的檔案即可,如此可降低日後更新和維護的成本。WooCommerce 會先找主題(或子主題)下的樣板,如果不存在,就使用 WooCommerce 插件本身的樣板。

目前大多數進階的主題,為了讓 WooCommerce 的更符合主題本身的設計,都會針對 WooCommerce 進行客製化,因此你可以在主題的目錄下找到客製化的 WooCommerce 樣板,或是你可以在後台 WooCommerce->System Status 的頁面中檢視主題覆寫的樣板
override_woo

那麼多的檔案,我要改哪一個?

如果你不熟悉 WooCommerce 樣板結構,你可以透過插件來協助(像是 Display Template Name, Show Current Template 或是 WooCommerce Template Hints)
Woocommerce Template Hints 會比較直覺地顯示網頁上的內容是來自於哪個樣板,前面兩個就只會顯示這頁包含了哪些樣板,但實際上網頁內容來自哪個樣板還是要自己去找。

如果我的主題包含了舊的樣板該怎麼辦?

有時候 WooCommerce 的更新會伴隨著樣板的變動,你一樣可以在後台的 WooCommerce->System Status 中的  Templates 看到提示:

outdated_templates

若你使用的主題有提供新版,你可以直接將新版主題內的 WooCommerce 樣板複製至你的主題或子主題中(要注意別覆蓋掉之前的修改),或是主題仍沒有提供新版的樣板,你可以使用 WooCommerce 2.1 版後內建的 Template Debug Mode 來檢視你的主題與新版本的 WooCommerce 樣板的相容性。當你啟用了這個功能後,若你是以管理者身份登入,覆寫的樣板將會失效,也就是會以 WooCommerce 內建的樣板來顯示。

template_debug_tool

What’s New in WordPress 4.7

WordPress 4.7 即將在 12/6 發佈,來看一下有什麼主要的新功能吧!

  • Twenty Seventeen – 全新的預設主題,包含了全幅的特色圖片、video header 和 subtle animations。此主題主要專注在商業網站,頁面上包含了多個區塊和小工具,導覽頁和社群選單,網站Logo以及許多的功能。
  • Video Headers – 透過影片header可以更凸顯你的網站特色。
  • Set up your site in one flow – 從搜尋到安裝主題,到自動安裝主題特定的測試內容,到在預覽視窗中點擊捷徑直接編輯頁面上的項目,再到新增頁面並設定選單或是首頁,新建一個網站的速度將比以往更快速並且更容易。備註:測試內容(Starter content)只會在檢視一個全新的網站時才會出現,目前只在Twenty Seventeen 才能使用,未來將會擴展到其他內建主題。
  • 客製化CSS與即時預覽 – 在 WordPress 4.7 中你可以直接在 Customizer 中透過 css 來修改主題或是插件的外觀,你可能不再需要一些主題提供的 css 客製化功能了。
  • 使用者後台自訂語言 – 有時候網站設定的語言並不一定適用於每個人,像是雖然客戶的網站為繁體中文,但是身為管理者的我還是習慣後台顯示英文,過去會是用 Admin in English 這類的外掛,在 WordPress 4.7 之後就不用了。
  • PDF 縮圖預覽 – 上傳 PDF 將會自動顯示縮圖,讓你更方便辨識檔案。

以上是跟使用者相關的功能,當然對於使用者來說也有不少的變動和新功能的增加:

  • REST API content endpoints – 身為開發者的你如果只測試一個功能,請測試這項。這個功能對於開發插件、主題或是管理者介面的人相當有幫助。 (#38373)
  • WP_Hook – The code that lies beneath actions and filters has been overhauled. You likely aren’t affected, but if you’ve done things to the $wp_filter global or experienced funky recursion bugs in the past, please take a moment to read the dev note and test your code.
  • Custom bulk actions – 現在你可以在文章清單頁新增其他批次處理動作了。
  • Expanded Settings Registration API via register_setting().
  • For theme developers: Post type templates (#18375) , 原本頁面樣板的功能被帶入到其他 Post Type 了,將來你也可以設計不同的文章樣板。
  • More goodies for theme developers!
  • Locale switching (#26511):語系轉換
  • Comment allowed checks have the potential for a back-compat break.

透過 DesktopServer 快速建構本機端 WordPress 架站環境

網站架設的第一步就是建構主機伺服器環境,而建構本機端架站/開發環境有很多好處, 你可以不用怕因為一個修改而弄壞正在運行的主機, 也可以在沒有網路連線的環境下進行開發。目前市面上常見的架站軟體包含了XAMPP、WAMP以及MAMP, 今天要介紹的 DesktopServer 本身即是以 XAMPP 為基礎, 但他提供了更多的功能,讓你的開發更加地快速和便利。

你可能會懷疑,既然像 XAMPP 或是 MAMP 都可以架設網站,那為什麼我還需要 DesktopServer? 各位可以回想一下你平常要建立一個新的 WordPress 網站流程

1.下載 WordPress  ->  2.安裝WordPress -> 3.安裝常用的插件

每次都要重新下載 WordPress 和相關插件實在有點麻煩,也有點浪費時間,所以 DesktopServer 提供了一個叫做 Blueprint 的功能,讓你可以先打包一些你常用的主題和插件,之後就不用每次都重新下載了。

DesktopServer 提供了免費的版本,但只能在本機架3個站,而且也無法匯入和匯出網站,若你是每天與 WordPress 為伍的架站者或開發者,建議還是購買進階版的,以99.95美金的價格來說,我個人認為是相當划算的,因為他對你的工作流程將會有很大的改變,省下來的時間絕對是值得的。

 

1.啟用

DesktopServer 因為需要以管理者的角色來執行,才能管理一些服務,所以在啟用的時候會詢問你是否允許 DesktopServer 以管理者的身份重新執行。

desktopserver_1

2.功能

重新啟用後即會顯示一些你可以執行的功能

  • Stop or restart the web and database services
  • Remove, copy or move an existing website.
  • Create a new development website.
  • Create or edit sub/domain aliases.
  • Export, import or share a website.

desktopserver_2

3.輸入網站資訊

Site Name: 輸入你的網站網址

Blueprint:選擇要安裝的軟體包,軟體包會包含基本的 WordPress 程式,你也可以自行建立軟體包,加入常用的插件,來加速日後的安裝

Site Root:網站安裝的目錄

desktopserver_3_1

4.建立網站目錄和複製相關檔案

輸入完畢後按建立,DesktopServer會自動幫你建立網站目錄及資料庫,同時根據你選擇的 Blueprint 安裝到指定的目錄下。

desktopserver_4

5.完成

完成後,DesktopServer 會提供你一個安裝的網址,點擊後即可進行一般的 WordPress 安裝。

desktopserver_5

6.安裝 WordPress

desktopserver_6_0

安裝完後登入,你會發現在畫面上會多了一個 ByPass login 的功能,你可選擇要登入的帳號,選擇後不用輸入帳號密碼即可以登入至後台,可排除本機端開發時不必要的帳號密碼輸入。

desktopserver_6_1

在Admin bar 上也多了一個Airplane Mode, 紅色代表關閉,若你在網路不佳的或是沒有網路的環境下可以啟用這個功能,避免 WordPress 去讀取一些外部網站而影響瀏覽速度,像是 Avatar 的頭像圖片。

desktopserver_7

以上就是 DesktopServer 基本的安裝介紹,其實 DesktopServer 還包含了其他可以協助你開發的功能,日後再另行介紹囉。另外前陣子有另外一套類似DesktoServer 的工具叫  pressmatic,除了有類似 DesktopServer 快速安裝的功能外,還可以選擇安裝的的PHP版本,以及使用 Nginx 作為伺服器主機,你幾乎可以模擬一個跟正式站一模一樣的環境,不過價格就相對高了一點。