今天我們要來開始試著寫 LINE notify 這段。我們建立一個 private function 叫做 line_send_notify
,這個函式傳入了一參數叫做 $text
:
一些學習心得、學習筆記
今天我們要來開始試著寫 LINE notify 這段。我們建立一個 private function 叫做 line_send_notify
,這個函式傳入了一參數叫做 $text
:
現在 要給 LINE 的 token
也存好了,想要發送 notify 的地方大概也都有想法了,再來我們要試著取出 token
來做使用。
今天我們來研究看看,WordPress 核心提供了哪些 hooks 可以拿來用?以及有些時候,我們想對其他外掛做點事情,該怎麼做?
WordPress 提供了我們兩個清單,分別是 filter hooks 和 action hooks 了!接著,我們還是找到woocommerce_checkout_update_order_metas :
Filter Reference
Action Reference
我們可以很輕易快速的直接來這兩個清單找到我們可以使用的 hook 。舉例來說,我希望每次發文的時候送出 notify 通知,那我可能可以找到一個 action hook 叫做 save_post()
。
他的下面會附上一段簡介,簡介如下:
Runs whenever a post or page is created or updated, which could be from an import, post/page edit form, xmlrpc, or post by email. Action function arguments: post ID and post object. Runs after the data is saved to the database. Note that post ID may reference a post revision and not the last saved post. Use wp_is_post_revision() to get the ID of the real post.
簡單來說就是,每當創建或更新文章或頁面的時候會運行。太好了,這就是我想找的 hook 。那我們就可以在這個 hook 上面掛上我們的 callback function 。
當然了,有的外掛也會提供 hook 給我們使用,所以我們也可以透過這種方式去插入我們自定義的 callback function 。沒錯!WordPress 的世界就是這麼方便。
舉例來說,我今天想要在 woocommerce 上面做訂單通知。我們可以試著上去外掛的官網上面找文件,於是我們找到了這份文件:Action and Filter Hook Reference,翻一翻可以找到 woocommerce_checkout_update_order_meta(),不過打開文件後,確實有點難理解要怎麼用它。
所以我這邊想分享一個網站: hookr.io。
進去後,我們可以直接打開外掛列表頁,這裡記錄了許許多多在 WordPress 上面提供的外掛,假設我們點了 Woocommerce,裡面就會有這個外掛所提供的所有filter hooks 和 action hooks 了!接著,我們找到 woocommerce_checkout_update_order_meta()。他就會告訴我們 description、他會用到哪些 parameters ,以及他的使用方法。整個很方便好用!
明天我們就要來把這個 hook 放上我們自己定義的 callback function 囉!
這幾天實在太忙了,所以文章有點沒時間寫。但是鐵人賽都快結束了,不可以輕易放棄啊!!!
在取得 LINE Notify token 之前,還記得我們在第 22 天的時候說過,使用者的瀏覽器在登入授權後,會透過 redirect_uri
所設定的網址發出 HTTP POST 要求嗎?所以我們要先來搞定取得 LINE 的 POST method 。
這部分要感謝也在參加鐵人賽的 Eric 桓桓 為我點通訣竅。
WordPress 接受 post method 的方法非常簡單,我們只需要在外掛的目錄下建立 get_post.php
就可以處理 post method 了,大概是這樣。
<?php
require_once('wp-load.php'); // add wordpress functionality
$post = $_POST;
if ( $something ) // security check
// do something...
?>
接著透過 yourdomain.com/plugin_name/get_posts.php
,就可以發送 post 請求。這也意味著我們要去 LINE Notify 修改一下我們的 redirect_uri
到 https://yourdomain.com/plugin_name/get_posts.php
。如此一來我們就可以取得一組 token
,所以接著我們需要把它存下來。
如此一來,我們就會有一組 token 清單在資料庫中,以後要發送 Notify 的時候,就找這個清單就可以囉!
至於實作的部分呢,小弟我還在被追殺中....我假日會補啦QQ
在 【第 22 天】開一個 LINE OA 這篇文章中,我提到,我們必須先拿著 Client ID 和 Client Secret 去取得 code ,再拿這個 code 去換 token 。 所以這個流程看來,我們的第一個步驟,應該先提供一個表單給後台使用者,可以去填入他的 Client ID 和 Client Secret 按下去後會進入 LINE 提供的授權頁面,然後會換回一個 code ,然後我們再拿著這個 code 去存在 WordPress 中。 然後這邊開始我們要開始寫 code 了 然後我被叫去修 bug 了…晚上再來補文QQ
終於要進入這次參賽的最後尾聲了。接著幾天又要開始捲起袖子寫 code 囉! 我們在第三天有講到如何建立第一個 WordPress 外掛 ,可以回去複習一下:【第 03 天】第一個 WordPress 外掛。 看來,我們需要先想一個好的名稱。 好的外掛名稱 根據官方的建議,外掛的名稱應該反映你和外掛的獨特性。 所以,我們在想名字的時候,必須確保沒有侵犯商標或與其他的產品名稱產生衝突。例如,我們想做一個外掛推播 LINE 通知,但是這並不是 LINE 官方的外掛,我們就就不應該命名這個外掛為 LINE’s Notify ,命名為 Notify for LINE 會更好一點。 因此,想出一個好名稱不是一件容易的事情。 建立外掛目錄 假設,我們就叫這個外掛 Notify…
在 WordPress 上面建立 LINE Chatbot 推播外掛之前,我們需要在 LINE 平台上面處理一些事情,才可以繼續。如果你對 LINE Chatbot 已經很熟悉,可以跳過這個章節。 服務提供者 還記得昨天我們說的說嗎?我們站在發送訊息方的角色,所以我們需要提供一支程式或網站、和一個 callback 網址給 LINE。 等等!你說我們要一個 callback 網址?那這樣不就意味著,我要搞台主機、再搞個網址、搞完還要弄 SSL? 還好有個好工具 ngrok ,提供我們快速建立一個外部可存取的網站。 ngrok 安裝 ngrok 因為我是使用…
有在使用 LINE OA 的人應該都有一種痛,那就是發送推播的成本真的很痛。但其實你要透過 LINE 完全免費 的訊息推播服務也不是不行,有種東西就叫做 LINE Notify,這就是我們今天要介紹的主角! 運作方式 LINE Notify 是一個「訊息推播」服務,但和以往我們認識的訊息推播有那麼一些些的不同,他的運作方式是這樣的: 首先,LINE 官方提供了一個 LINE Notify 帳號,他也是一個 LINE chatbot。只要使用者有訂閱你的 LINE Notify 推播服務,當你發送訊息的時候,使用者就會透過這個 LINE Notify 帳號收到通知。也因此我們都可以成為 服務提供者,發送推播給任何人,而且完全不用任何費用! 真的認真要說有什麼缺點的話,我覺得... 因為訊息變成一律由官方的 LINE Notify 帳號發出,而不是由自己建立的 LINE OA…
今天也不寫 code ,來分享在 WordPress 的世界裡,提供了各式各樣的開發外掛,可以協助我們開發 WordPress 的時候,更正確的開發外掛和診斷問題。 Debug Bar 這個外掛會在 WordPress 上面的管理工具 bar 添加一個新的選單,用來顯示 WordPress 查詢、查詢時間這類的資訊,當 WP_DEBUG 設為 true 時,還會協助我們追蹤 PHP 警告和通知。而 SAVEQUERIES 也被設置為啟用時,SQL 查詢也會被追蹤並顯示。 Query Monitor 我們可以在通過這個外掛查看有關資料庫查詢、hook、函式、HTTP 請求這類的狀況和請求。 WP Crontrol…
今天我們不寫任何的 code ,今天我們就很單純的聊聊如何上架一個外掛到 WordPress.org 。 WordPress.org 為每一個想要開發外掛的開發者免費提供託管的服務,通過這個服務,我們可以: 監控外掛被下載的次數 取得外掛各個版本的使用統計 得到使用者的回饋和評價 WordPress.org 提供了一個 WordPress 外掛的 API,供開發者監控外掛的統計數據。 規劃外掛 1、盡可能多的測試 我們要確保外掛已經得到了盡可能多的測試,測試涵蓋了各種情況。 2、選擇一個好名稱 選擇名字的時候,確保沒有侵犯商標或與其他的產品名稱產生衝突。例如,如果你不在 Facebook 工作,你就不應該命名你的外掛為 Facebook’s Dancing Squirrels,命名為 Dancing Squirrels…