WP Weixin 提供 WordPress 和微信之間的整合。在微信瀏覽器中自動註冊或驗證用戶,使用微信建立帳戶或透過微信掃描二維碼在電腦上進行身份驗證,在微信朋友圈和對話中分享貼文或擴充插件以獲得更多功能!
鼓勵開發者以WP微信為核心,利用其公開的功能、操作和過濾器,建立與微信整合的插件和主題,或直接使用提供的SDK。
如果您希望將您的外掛程式新增至此清單中,請聯絡作者。
要註冊網域名稱並授權其與微信API(前端JS和伺服器端)之間的通信,該網域必須先連結ICP許可證。然後,在 https://mp.weixin.qq.com 上:
http
或https
) - 確保包含MP_verify_[some_code].txt
註冊的網域名稱對應的網站根目錄,可公開存取。該外掛程式為 WordPress 添加了以下主要功能:
wx
JavaScript 全域變數預先配置了簽章包,以便更輕鬆地在 WordPress 主題中使用微信的 JavaScript SDK。與 WooCommerce、WooCommerce Multilingual、WPML、Ultimate Member、WordPress Multisite 和許多快取外掛程式相容。
該外掛程式使用 WordPress WP_Object_Cache
來優化資料庫查詢的數量,確保每次頁面載入時僅觸發適當的數量。由於WP_Object_Cache
物件可能會受到第三方外掛程式的影響,因此要求此類外掛程式實作wp_cache_add_non_persistent_groups
函數以避免副作用。
請參閱以下與 WP 微信相容的熱門快取外掛程式範例:
WP微信設定頁面提供以下設定。
以下所需的設定是插件發揮作用所需的最低配置。
姓名 | 必需的 | 類型 | 描述 |
---|---|---|---|
使能夠 | 是的 | 複選框 | 啟用 WP 微信 - 需要有效配置。 |
微信應用程式ID | 是的 | 文字 | AppId位於後端https://mp.weixin.qq.com/ 開發>基礎配置下。 |
微信應用秘密 | 是的 | 文字 | AppSecret位於後端https://mp.weixin.qq.com/ 開發>基礎配置下。 |
微信OA名稱 | 不 | 文字 | 公眾號名稱(建議輸入真實名稱)。 |
微信OA標誌網址 | 不 | 文字 | 公號Logo的URL -(建議輸入實際Logo圖片的URL)。 |
啟用微信認證 | 不 | 複選框 | 如果啟用,當使用者使用微信瀏覽器存取網站時,將使用 WordPress 中的微信帳戶進行驗證(如果未啟用,則會設定金鑰為'wx_openId-' . apply_filters( 'wp_weixin_ms_auth_blog_id', 1 ) 會話cookie )。 |
強制微信手機端 | 不 | 複選框 | 使網站只能透過微信瀏覽器存取。 如果使用其他瀏覽器訪問,頁面會顯示二維碼。 |
強制關注(任何頁面) | 不 | 複選框 | 要求使用者在使用微信瀏覽器造訪網站之前先關注公眾號。 |
這些設定預設隱藏,僅在以下情況下可用:
manage_network_options
能力它們影響整個多站點網路。
姓名 | 類型 | 描述 |
---|---|---|
強制部落格進行身份驗證 | 選擇 | 如果回呼掛接到 wp_weixin_ms_auth_blog_id,則替換為資訊文字。 在對使用者進行身份驗證時用作代理的部落格。 |
強制部落格微信支付 | 選擇 | 如果回呼掛接到 wp_weixin_ms_pay_blog_id,則替換為資訊文字。 如果未選取「使用商家平台」選項,則保持隱藏狀態(需要將微信付款整合到配套插件中)。 處理付款時用作代理的部落格。如果默認,則必須為所有進行支付的網路部落格輸入 JSAPI 支付授權 URL,且二維碼支付回呼 URL 必須能夠處理來自微信支付 API 的所有通知。 |
姓名 | 類型 | 描述 |
---|---|---|
使用微信回复 | 複選框 | 允許網站接收微信訊息並回覆。服務端配置必須在https://mp.weixin.qq.com/ 開發 > 基礎配置下啟用並配置。如果在主設定或微信支付設定中使用「強制關注」選項,則為必填項。 |
微信令牌 | 文字 | Token位於後端https://mp.weixin.qq.com/ 開發>基礎配置下。 |
對訊息進行編碼 | 複選框 | 對網站和微信API之間的通訊進行編碼(建議)。 |
微信AES密鑰 | 文字 | EncodingAESKey在後端https://mp.weixin.qq.com/ 下開發 > 基本配置。 |
傳送歡迎訊息 | 複選框 | 用戶追蹤公眾號時發送歡迎訊息。 以下過濾器可用於變更訊息的預設值:
|
歡迎留言圖片網址 | 文字 | 用戶追蹤公眾號(外部或來自媒體庫)後發送的歡迎訊息所用圖像的 URL。 預設圖片位於 /wp-weixin/images/default-welcome.png 。 |
這些設定預設隱藏,僅在安裝並啟動微信支付整合外掛(例如 WP Weixin Pay 或 WooWeChatPay)時才可用(可使用 wp_weixin_show_settings_section 過濾器變更此行為)。
姓名 | 類型 | 描述 |
---|---|---|
使用商家平台 | 複選框 | 允許使用者使用微信向服務帳號匯款 - 需要有https://pay.weixin.qq.com/ 的帳號。如果啟動了 Woo 微信支付插件,則此設定無法設定(強制選取和隱藏)。 |
微信商家App ID | 文字 | 後端https://pay.weixin.qq.com/ 中的 AppID - 可能與微信 App ID 不同,因為微信支付帳戶可能連結到不同的 AppID。留空即可使用微信App ID。 |
微信商戶號 | 文字 | 後台商家ID https://pay.weixin.qq.com/index.php/extend/pay_setting 。 |
PEM 憑證前綴 | 文字 | 從https://pay.weixin.qq.com/index.php/core/cert/api_cert 下載的憑證檔案的前綴。憑證檔案預設前綴是 apiclient (對於apiclient_cert.pem 和apiclient_key.pem 檔案)。特別需要透過微信支付處理退款。 |
PEM 憑證檔案路徑 | 文字 | 從https://pay.weixin.qq.com/index.php/core/cert/api_cert 下載的憑證檔案在目前檔案系統上所在資料夾的絕對路徑。範例: /home/user/wechat-certificates 。執行 PHP 的使用者必須具有讀取權限,並且位於 Web 根目錄之外。 特別需要透過微信支付處理退款。 |
除了這些設定之外,該外掛程式還提供螢幕幫助,幫助您在商家帳戶的 API 設定畫面中為不同的 URL 輸入哪些值。
姓名 | 類型 | 描述 |
---|---|---|
使用代理 | 複選框 | 啟用代理。 |
代理主機 | 文字 | 代理主機的 IP 位址或 URI。 |
代理端口 | 文字 | 用於連接到代理主機的連接埠。 |
根據您的伺服器配置,如果 WordPress 位於防火牆後面或在公司網路內,則可能需要代理。
姓名 | 類型 | 描述 |
---|---|---|
在使用者清單頁面顯示微信名稱和圖片 | 複選框 | 覆蓋 WordPress 帳戶名稱和頭像的顯示。 |
顯示微信公眾訊息 | 複選框 | 在使用者資料頁面顯示微信公開資訊。與 WooCommece 和 Ultimate Member 整合。 |
顯示微信帳號綁定連結 | 複選框 | 在使用者資料頁面顯示 WordPress 帳號與微信帳號綁定或解除綁定的連結。與 WooCommece 和 Ultimate Member 整合。 |
顯示微信帳號認證鏈接 | 複選框 | 在 WordPress 登入表單上顯示使用微信帳戶透過二維碼進行驗證的連結。 |
公眾號選單語言感知 | 複選框 | 根據使用者的語言自訂公眾號的選單。預設情況下,使用與網站預設語言對應的選單語言。 僅當啟動 WPML 時此設定才可用。 |
對 access_token 使用自訂持久性 | 複選框 | 對公眾號access_token及其過期時間戳使用自訂持久化方法。 警告- 需要實施:
$access_info 是一個包含鍵token 和expiry 陣列。將上面的鉤子添加到優先權為 5 或更低的plugins_loaded 操作中。如果需要在多個平台之間共享 access_token 訊息,則有助於避免競爭條件。 未選取時,access_token 和到期時間戳將儲存在資料庫的 WordPress 選項表中。 |
WP Weixin 支援 WordPress 的多網站安裝,無論是使用網域/子網域或子目錄。 WP 微信需要配置相同的設置,並在所有需要對給定公眾號碼進行身份驗證的部落格上啟用。
啟用微信移動認證後,訪問某一博客的用戶會自動註冊到網絡,並以該博客的默認用戶角色添加到所訪問的博客中。如果用戶已經在其中一個部落格上註冊,那麼用戶在訪問時也會自動添加到網路的其他部落格。可以使用 wp_weixin_ms_auto_add_to_blog 過濾器來變更此行為,例如,如果某些部落格不應接受預先驗證的微信使用者。
當使用基於網域/子網域的部落格網路時,主部落格的網域/子網域用於跨網域身份驗證。可以透過外掛程式頁面的「多站點設定」部分中的「強制部落格進行身份驗證」設定來變更該行為。
微信支付整合外掛程式還可以利用 WP 微信提供的功能、操作和過濾器來支援 WordPress Multisite 的基於網域/子網域的網路安裝。用於付款的部落格可以透過外掛程式頁面的多站點設定部分中的「強制微信支付部落格」來強制。
WP Weixin Pay 和 WooWeChatPay 是與微信支付整合的外掛程式範例,無論多站點安裝類型(子目錄或網域/子網域)如何,都可以正常運作。
與某些外掛程式(商業、模糊且安全標準可疑)不同,WP 微信不會也不會依賴 WordPress 根目錄下轉儲的跨域腳本,而是更喜歡利用 WordPress 操作和過濾器。
只要開發人員利用 wp_weixin_ms_auth_blog_id 和 wp_weixin_ms_pay_blog_id 過濾器掛鉤來考慮不同的可能場景(請參閱此處的簡單範例外掛程式),就可以在同一網路上使用具有多個官方帳戶的插件。
WP Weixin 提供的最強大的工具之一是 PHP 微信軟體開發套件。要取得微信SDK的實例,開發者可以使用以下程式碼片段:
$ wechat_sdk = wp_weixin_get_wechat ();
傳回值是WP_Weixin_Wechat
的實例,它是Wechat_SDK
的包裝類別:它確保所有設定和令牌均有效且已初始化。不鼓勵開發者直接使用Wechat_SDK
類別。
Wechat_SDK
的所有公共方法都可以透過WP_Weixin_Wechat
物件調用,並且只能用於高級目的。與提供的功能相比,這些是低階方法:應盡可能使用後者,且開發人員應僅在不存在實現預期結果的功能時才使用 SDK。
可用的公共方法請直接參考Wechat_SDK
源碼。
快速、未最佳化的進階使用範例 - 對追蹤者的 openID 清單執行某些操作,並進行錯誤處理:
$ wechat = wp_weixin_get_wechat ();
$ next_openid = true ;
$ result = $ wechat -> users ();
$ error = $ wechat -> getError ();
// Warning - will loop until WeChat stops providing results ; do not use in production
while ( false !== $ next_openid && ! $ error ) {
if ( is_array ( $ result ) ) {
$ next_openid = ( ! empty ( $ result [ ' next_openid ' ] ) ) ? $ result [ ' next_openid ' ] : false ;
// Do something with the returned data
do_something ( $ result [ ' data ' ] );
} else {
$ next_openid = false ;
}
if ( $ next_openid ) {
$ result = $ wechat -> users ( $ next_openid );
$ error = $ wechat -> getError ();
}
}
if ( $ error ) {
// Handle the error with the array containing the error information
handle_error ( $ error );
}
以下列出的功能由外掛程式公開提供給主題和外掛程式開發人員。雖然如果$hook_init
參數設定為false
,理論上可以實例化插件的主類別而不會產生副作用,但建議僅使用以下函數,因為不能保證將來的更新不會引入行為變更。
功能索引:
wp_weixin_is_wechat ();
描述
訪客是否使用微信瀏覽器。
傳回值
(bool) 訪客是否使用微信瀏覽器。
wp_weixin_ajax_safe ();
描述
在 WordPress ajax 操作中呼叫此函數。允許在ajax請求期間與微信API互動。
wp_weixin_get_user_by_openid ( string $ openid );
描述
透過微信openID取得WordPress用戶。
參數
$openid
(字串)微信openID。
傳回值
(混合)如果存在對應微信openID綁定的WordPress用戶,則傳回
WP_User
,否則傳回false
。
wp_weixin_get_user_by_unionid ( string $ unionid , int $ blog_id = false );
描述
透過微信unionID取得一個WordPress用戶,如果存在多個符合則取得WordPress用戶的集合(僅在多站點有多個公眾號碼的情況下可能)。
參數
$unionid
(字串)微信unionID。
傳回值
(混合)如果存在具有相應微信 unionID 的 WordPress 用戶,則為
WP_User
物件;如果存在多個匹配,則為WP_User
物件數組,否則為false
。
wp_weixin_get_wechat ();
描述
取得WP_Weixin_Wechat
的實例( Wechat_SDK
的包裝物件 - 請參閱微信 SDK)。
傳回值
(WP_Weixin_Wechat)
Wechat_SDK
的包裝物件實例。
wp_weixin_get_options ();
描述
取得用於配置插件的所有選項。
傳回值
(數組)一個關聯數組,其中包含用於配置插件的所有選項。
wp_weixin_get_option ( $ key );
描述
取得用於配置插件的特定選項值。
參數
$鍵
(字串)選項鍵。
傳回值
(混合)如果選項有值,則為字串、布林值或整數,否則為
null
。
wp_weixin_wpml_switch_lang ( $ force = true );
描述
如果WPML處於活動狀態且已知目前使用者的微信語言,則將語言切換為使用者微信帳號提供的值。
使用SitePress::switch_lang( $code = null, $cookie_lang = false )
- 開發人員需要加快對 WMPL 程式碼庫和文件的了解。
參數
$力
(bool) 如果設定為
true
,將始終切換語言;如果false
,則僅當在 WPML 中啟用「瀏覽器語言重定向」時才會切換語言 - 預設true
。
傳回值
(bool) 是否呼叫了
SitePress::switch_lang( $code = null, $cookie_lang = false )
。
wp_weixin_get_signed_package ();
描述
取得微信簽名包以與微信 JSAPI 一起使用。
注意:如果wp-weixin-main-script
已經入隊,則 JavaScript 全域變數wx
已經正確簽署並使用完整的jsApiList
初始化。
有關更多詳細信息,請參閱文檔的“JavaScript”部分。
傳回值
(陣列)透過
wp_localize_script( $handle, $object_name, $l10n )
傳遞給腳本的簽章包。
wp_weixin_get_user_wechat_info ( int $ user_id = false , bool $ output = false );
描述
取得用戶的微信資訊。如果省略使用者 ID,則取得目前使用者的使用者 ID。
參數
$用戶id
(int) 使用者的 ID - 預設
false
。
$輸出
(bool) 是否輸出訊息(使用 wp-weixin-public-info 範本) - 預設
false
。
傳回值
(mixed) 若存在則為微信資訊數組,否則為
false
。
wp_weixin_get_user_wechat_openid ( int $ user_id = false );
描述
取得用戶的微信openID。如果省略使用者 ID,則取得目前使用者的 ID。
參數
$用戶id
(int) 使用者的 ID - 預設
false
。
傳回值
(混合)如果存在則為微信 openID,否則為
false
。
wp_weixin_get_auth_link ( bool $ output = false , string $ target = '' , $ class = '' );
描述
取得微信認證頁面連結。
此功能在微信瀏覽器中無效。
參數
$輸出
(bool) 是否輸出連結。
$目標
(字串)連結的目標。
$目標
(字串)連結的 CSS 類別。
傳回值
(混合)如果
$output
設定為true
,則連結的標記 - 否則為false
。
wp_weixin_get_bind_link ( bool $ output = false , string $ target = ' _blank ' );
描述
取得微信帳號綁定頁面的連結。
此功能在微信瀏覽器中無效。
參數
$輸出
(bool) 是否輸出連結。
$目標
(字串)連結的目標。
傳回值
(混合)如果
$output
設定為true
,則連結的標記 - 否則為false
。
wp_weixin_unbind ( int $ user_id , string $ open_id = '' );
描述
解除先前與微信綁定的WordPress用戶帳號的綁定,有效刪除與關聯微信帳號相關的所有記錄資訊。
注意:微信專用 WordPress 使用者帳戶是在微信瀏覽器中開啟網站時由 WP 微信自動建立的 WordPress 帳戶(使用者名稱遵循wx-[openid]
模式)。
如果提供了與先前綁定或未綁定的微信專用 WordPress 使用者帳戶相對應的user_id
(使用者名稱遵循wx-[openid]
或wx-bound-[openid]
模式),則使用者名稱將更新為wx-unbound-[openid]
模式。
參數
$用戶ID
(int) 使用者的 ID。
$open_id
(string) 微信帳號的openID - 如果留空,則設定為目前使用者的記錄值。
傳回值
(bool) 帳戶是否已解綁。
wp_weixin_bind ( int $ user_id , string $ openid );
描述
將 WordPress 使用者帳戶與微信綁定,有效覆蓋與關聯微信帳戶相關的所有記錄資訊(如果存在)。
注意:微信專用 WordPress 使用者帳戶是在微信瀏覽器中開啟網站時由 WP 微信自動建立的 WordPress 帳戶(使用者名稱遵循wx-[openid]
模式)。
必須存在記錄了所提供的$openid
僅限微信的 WordPress 使用者帳戶。
如果提供的$user_id
值對應於先前可能未綁定的微信專用 WordPress 使用者帳戶(使用者名稱遵循wx-[openid]
或wx-unbound-[openid]
模式),則會更新使用者名稱使用wx-bound-[openid]
模式。
給定的openID不能用於將微信與多個WordPress使用者帳號綁定。
參數
$用戶id
(int) 使用者的 ID。
$open_id
(字串)與僅限微信的 WordPress 使用者帳戶對應的 openID。
傳回值
(bool) 帳戶是否已綁定。
wp_weixin_is_follower ( int $ user_id );
描述
檢查ID為$user_id
使用者是否為微信公眾號碼的追蹤者。
參數
$用戶id
(int) 使用者的 ID。
傳回值
(bool) 使用者是否關注微信公眾號。
WP Weixin 使開發人員能夠透過一系列自訂操作和過濾器來自訂其行為。
行動指數:
do_action ( ' wp_weixin_extensions ' , mixed $ wechat , mixed $ wp_weixin_settings , mixed $ wp_weixin , mixed $ wp_weixin_auth , mixed $ wp_weixin_responder , mixed $ wp_weixin_menu );
描述
當WP微信完全載入並且在WP微信主設定中選取「啟用」時觸發。通常用於以 WP 微信為核心建立插件。
注意:建議盡可能使用提供的函數,而不是此操作參數的方法,因為不能保證未來的更新不會引入行為的變化。
參數
$微信
(混合)
WP_Weixin_Wechat
物件。
$wp_weixin_settings
(混合)
WP_Weixin_Settings
物件。
$wp_weixin
(混合)
WP_Weixin
物件。
$wp_weixin_auth
(混合)
WP_Weixin_Auth
物件。
$wp_weixin_responder
(混合)如果微信響應器已啟用,則為
WP_Weixin_Responder
對象,否則為false
。
$wp_weixin_menu
(混合)如果微信響應器已啟用,則為
WP_Weixin_Menu
對象,否則為false
。
do_action ( ' wp_weixin_responder ' , array $ request_data );
描述
收到微信請求後被解僱。
參數
$請求數據
(數組)微信請求中發送的資料。
do_action ( ' wp_weixin_save_access_info ' , array $ access_info );
描述
如果使用自訂持久化,則更新公眾號access_token後觸發。用於保存存取資訊 - 如果需要在多個平台之間共用 access_token,則對於避免競爭條件特別有用。
參數
$訪問信息
(數組)關聯數組中的存取資訊。密鑰是
token
和expiry
。
do_action ( ' wp_weixin_before_user_profile_wechat_info ' , mixed $ wechat_info , mixed $ user );
描述
在使用者個人資料上顯示微信公共資訊之前觸發。
參數
$wechat_info
(混合)一組微信公共訊息,如果存在,則顯示在使用者個人資料上,否則為
false
。
$用戶
(混合)如果使用者存在,則為
WP_User
對象,否則為false
。
do_action ( ' wp_weixin_after_user_profile_wechat_info ' , mixed $ wechat_info , mixed $ user );
描述
在用戶個人資料上顯示微信公共資訊後被解僱。
參數
$wechat_info
(mixed) 使用者個人資料中顯示的微信公開資訊數組,否則為
false
。
$用戶
(混合)如果使用者存在,則為
WP_User
對象,否則為false
。
do_action ( ' wp_weixin_before_bind_account ' , int $ user_id , int $ wechat_user_id , array $ wechat_user_blog_ids , int $ current_blog_id );
描述
在將 WordPress 使用者帳戶與微信綁定之前觸發。
參數
$用戶id
(int) 使用者 ID。
$wechat_user_id
(int) 僅限微信的 WordPress 使用者帳號的 ID(遵循
wx-[openid]
模式的使用者名稱)。
$wechat_user_blog_ids
(陣列)僅限微信的 WordPress 使用者帳戶所屬的部落格 ID 清單。
$current_blog_id
(int) 目前部落格的部落格 ID。
do_action ( ' wp_weixin_after_bind_account ' , bool $ bound , int $ user_id , int $ wechat_user_id , array $ wechat_user_blog_ids , int $ current_blog_id );
描述
將 WordPress 使用者帳號與微信綁定後觸發。
參數
$綁定
(bool) WordPress使用者帳號與微信是否綁定成功。
$用戶id
(int) 使用者 ID。
$wechat_user_id
(int) 僅限微信的 WordPress 使用者帳號的 ID(遵循
wx-[openid]
模式的使用者名稱)。
$wechat_user_blog_ids
(陣列)僅限微信的 WordPress 使用者帳戶所屬的部落格 ID 清單。
$current_blog_id
(int) 目前部落格的部落格 ID。
do_action ( ' wp_weixin_before_unbind_account ' , int $ user_id , string $ openid );
描述
在解除 WordPress 使用者帳戶與微信的綁定之前觸發。
參數
$用戶id
(int) 使用者 ID。
$openid
(字串)微信openID。
do_action ( ' wp_weixin_after_unbind_account ' , bool $ unbound , int $ user_id , string $ openid );
描述
WordPress 用戶帳號與微信解綁定後觸發。
參數
$未綁定
(bool) WordPress使用者帳號與微信解綁定是否成功。
$用戶id
(int) 使用者 ID。
$openid
(字串)微信openID。
do_action ( ' wp_weixin_before_tabs_settings ' );
描述在輸出 WP 微信頁面的標籤之前觸發。
do_action ( ' wp_weixin_before_main_tab_settings ' );
描述在輸出 WP 微信頁面的主設定標籤之前觸發。
do_action ( ' wp_weixin_before_main_settings_inner ' );
描述在WP微信頁面輸出主要設定內容之前觸發。
do_action ( ' wp_weixin_after_main_settings_inner ' );
描述WP微信頁面主要設定內容輸出後觸發。
do_action ( ' wp_weixin_after_main_tab_settings ' );
描述輸出WP微信頁面主設定標籤後觸發。
do_action ( ' wp_weixin_before_qr_tab_settings ' );
描述在輸出 WP 微信頁面的二維碼產生器標籤之前觸發。
do_action ( ' wp_weixin_after_qr_tab_settings ' );
描述輸出WP微信頁面的二維碼產生器標籤後觸發。
do_action ( ' wp_weixin_after_tabs_settings ' );
描述輸出WP微信頁面標籤後觸發。
do_action ( ' wp_weixin_before_settings ' );
描述在WP微信頁面輸出設定前觸發。
do_action ( ' wp_weixin_before_main_settings ' );
描述在WP微信頁面輸出主設定框之前觸發。
do_action ( ' wp_weixin_after_main_settings ' );
描述WP微信頁面主設定框輸出後觸發。
do_action ( ' wp_weixin_before_qr_settings ' );
描述在WP微信頁面輸出二維碼產生器之前觸發。
do_action ( ' wp_weixin_before_qr_settings_inner ' );
描述在WP微信頁面輸出二維碼產生框之前觸發。
do_action ( ' wp_weixin_after_qr_settings_inner ' );
描述WP微信頁面輸出二維碼產生框後觸發。
do_action ( ' wp_weixin_after_qr_settings ' );
描述在WP微信頁面輸出二維碼產生器後觸發。
do_action ( ' wp_weixin_after_settings ' );
描述WP微信頁面設定輸出後觸發。
do_action ( ' wp_weixin_endpoints ' );
描述
新增WP微信重寫規則時觸發。對於配套外掛程式添加自己的外掛程式很有用,並確保它們正確註冊(在儲存 WP 微信設定時會刷新規則)。
do_action ( ' wp_weixin_handle_payment_notification ' );
描述
處理微信支付交易通知時觸發。
最後由 WP 微信觸發 ( PHP_INT_MIN
) ;應該由與微信支付整合的配套插件提前觸發。
有關如何處理微信支付通知的信息,請參閱微信支付整合插件框架。
do_action ( ' wp_weixin_handle_auto_refund ' , mixed $ refund_result , array $ payment_result );
描述
嘗試對失敗的交易進行自動退款後觸發。
請參閱微信支付整合外掛框架,以了解如何處理 WP 微信自動退款結果。
參數
$refund_結果
(mixed) 一個數組,包含退款成功時微信支付介面的回應,否則為
false
。
$付款結果
(數組)支付通知結果。結果的結構:
array (
' success ' => false , // optional - (bool) wether the transaction to handle was found ; default false
' data ' => $ data , // required - (array) return value of WP_Weixin_Wechat::getNotify()
' refund ' => false , // optional - (mixed) false if no refund needed, true or an refund message for the user otherwise ; default false
' notify_error ' => false , // optional - (mixed) false if no error, true or an error message otherwise ; if truthy and pay_handler set to true, WeChat Pay API will continue to send notifications for the transaction ; default false
' blog_id ' => $ blog_id , // required for multisite, optional otherwise - (int) the ID of the blog where the original transaction was made ; default the return value of get_current_blog_id()
' pay_handler ' => false , // optional - (bool) wether the result is for the callback registered in the WeChat Pay backend ; default false
/* More custom items can safely be added to the array */
);
過濾指數:
apply_filters ( ' wp_weixin_browser_page_qr_src ' , string $ src );
描述
過濾二維碼的來源,以在經典瀏覽器上顯示只能透過微信瀏覽器存取的頁面。
參數
$src
(字串)在經典瀏覽器上顯示的二維碼的來源。
apply_filters ( ' wp_weixin_subscribe_src ' , string $ src );
描述
過濾公眾號關註二維碼來源。
參數
$src
(字串)二維碼的來源。
apply_filters ( ' wp_weixin_follower_notice_title ' , string $ title );
描述
過濾顯示二維碼的頁面標題即可追蹤公眾號。
參數
$標題
(字串)頁面標題 - 預設「關注我們!」。
apply_filters ( ' wp_weixin_follower_notice ' , string $ notice );
描述
過濾公眾號二維碼頁面顯示的訊息。
參數
$通知
(字串)顯示的訊息 - 預設「請掃描此二維碼以關注我們,然後再訪問此內容。」。
apply_filters ( ' wp_weixin_auth_needed ' , bool $ needs_auth );
描述
URL是否需要使用者使用微信進行身份驗證。當在設定中選取「啟用微信身份驗證」時,觸發 WordPress init
操作掛鉤的 URL 預設需要身份驗證,除非使用此過濾器將其列入白名單。預設情況下,所有管理頁面、WP 微信經典瀏覽器驗證頁面、WordPress ajax 端點、微信回應器端點和 WooCommerce API 端點均已列入白名單,可在微信外部存取。
參數
$needs_auth
(bool) 存取URL是否需要認證。
apply_filters ( ' wp_weixin_debug ' , bool $ debug );
描述
過濾是否啟動偵錯模式(PHP 錯誤日誌、JavaScript 控制台訊息、JavaScript 警報)。
參數
$偵錯
(bool) 是否啟動調試模式 - 預設
WP_DEBUG
常數值。
apply_filters ( ' wp_weixin_follower_welcome_title ' , string $ title , mixed $ before_subscription );
描述
過濾用戶追蹤公眾號時收到的訊息標題。
參數
$標題
(字串)標題 - 預設“'歡迎
user_name
!'”,其中user_name
是使用者的微信名稱。
$before_subscription
(混合)如果是數字,則為使用者造訪的最後一個頁面的
WP_Post
ID ;如果是字串,則為使用者造訪的最後一個頁面的 URL - 預設home_url()
。
apply_filters ( ' wp_weixin_follower_welcome_description ' , string $ description , mixed $ before_subscription );
描述
過濾用戶追蹤公眾號時收到的訊息描述。
參數
$描述
(字串)描述 - 預設「感謝您訂閱我們的公眾號!」。
$before_subscription
(混合)如果是數字,則為使用者造訪的最後一個頁面的
WP_Post
ID ;如果是字串,則為使用者造訪的最後一個頁面的 URL - 預設home_url()
。
apply_filters ( ' wp_weixin_follower_welcome_url ' , string $ url , mixed $ before_subscription );
描述
過濾使用者在追蹤公眾號時收到的訊息互動時將被重新導向到的 URL。
參數
$網址
(字串)使用者將被重定向到的 URL - 如果在發送範本訊息之前沒有記錄 URL,則預設為
home_url()
。
$before_subscription
(混合)如果是數字,則為使用者造訪的最後一個頁面的
WP_Post
ID ;如果是字串,則為使用者造訪的最後一個頁面的 URL - 預設home_url()
。
apply_filters ( ' wp_weixin_follower_welcome_pic_url ' , string $ pic_url , mixed $ before_subscription );
描述
過濾用戶追蹤公眾號時收到的訊息中顯示的圖片URL。
參數
$圖片地址
(字串)圖片的 URL - 預設
WP_PLUGIN_URL . '/wp-weixin/images/default-welcome.png'
。
$before_subscription
(混合)如果是數字,則為使用者造訪的最後一個頁面的
WP_Post
ID;如果字串,則使用者造訪的最後一頁的URL -Defaulthome_url()
。
apply_filters ( ' wp_weixin_get_access_info ' , array $ access_info );
描述
如果使用WP_Weixin_WeChat
訂持久性,請過濾存取權杖和Wechat_SDK
到期時,如果需要在多個平台之間共用存取權限,則在多個平台之間共用存取權杖時,特別有用。
參數
$ access_info
(數組)關聯陣列中的存取資訊。值類型和鍵:(字串)
token
,(int)expiry
。
apply_filters ( ' wp_weixin_jsapi_urls ' , array $ jsapi_urls );
描述
過濾在Wechat Merchant帳戶的API配置畫面上註冊所需的URL-當另一個外掛實現微信付費整合時使用。
參數
$ jsapi_urls
(陣列)要在微信商帳戶的API設定畫面上註冊的URL。
apply_filters ( ' wp_weixin_pay_callback_endpoint ' , string $ endpoint );
描述
過濾在Wechat Merchant帳戶的API配置畫面上註冊的QR付款URL的端點 - 在實施微信付費整合時使用。
參數
$ callback_url
(字串)QR付款URL的端點要在微信商帳戶的API設定畫面上註冊(範例:
/my_plugin/notify
)。
apply_filter ( ' wp_weixin_settings ' , $ settings );
描述
過濾用於配置插件的設定。需要將掛鉤函數或方法加入到該濾鏡中,以5
或更少的優先權插件鉤中plugins_loaded
。
參數
$設定
(數組)用於配置插件的設定。
apply_filters ( ' wp_weixin_show_settings_section ' , bool $ show_section , string $ section_name , array $ section );
描述
過濾Wether在WP Weixin設定頁面上顯示設定部分。
參數
$ show_section
(bool)在WP Weixin設定頁面上顯示「設定」部分。
$ section_name
(字串)設定部分的名稱。
$部分
(數組)該部分的設定。
apply_filters ( ' wp_weixin_show_setting ' , bool $ show_setting , string $ section_name , int $ index , array $ value );
描述
過濾Wether在WP Weixin設定頁面上顯示設定。
參數
$ show_setting
(bool)在WP Weixin設定頁面上顯示設定。
$ section_name
(字串)設定屬於的部分的名稱。
$索引
(int)本節中設定的索引。
$值
(數組)設定。
apply_filters ( ' wp_weixin_settings_fields ' , array $ settings_fields );
描述
過濾WP Weixin設定頁面上顯示的設定欄位。
參數
$ include_section
(陣列)在WP Weixin設定頁面上顯示的設定欄位。
apply_filters ( ' wp_weixin_auth_redirect ' , mixed $ redirect , bool $ auth , bool $ has_error );
描述
將URL過濾為重定向到經典瀏覽器中的QR碼身份驗證時。
參數
$重定向
(混合)將URL重定向到執行身份驗證時,或者如果沒有重定向,則為
false
。在成功身份驗證的情況下,預設值為home_url()
。
$ auth
(bool)是否執行身份驗證 - 如果成功,
true
false
,如果發生錯誤。
$ has_error
(bool)發生錯誤。
apply_filters ( ' wp_weixin_scan_heartbeat_frequency ' , int $ frequency );
描述
在經典瀏覽器中等待QR碼掃描確認確認時,過濾了檢查的頻率。
參數
$頻率
(int)毫秒中的頻率。預設
1000
。
apply_filters ( ' wp_weixin_qr_cleanup_frequency ' , string $ frequency );
描述
過濾頻率以清理過期的QR碼資料。
參數
$頻率
(字串)頻率。預設
'hourly'
。
apply_filters ( ' wp_weixin_qr_lifetime ' , int $ lifetime );
描述
過濾潛在敏感QR碼的壽命,例如微信身份驗證或微信帳戶綁定。
參數
$生命
(int)壽命在幾秒鐘內。預設
600
。
apply_filters ( ' wp_weixin_user_wechat_info ' , mixed $ wechat_info , int $ user_id );
描述
過濾用戶微信資訊。
參數
$ WECHAT_INFO
(混合)一系列微信訊息,如果存在,則否則為
false
。
$生命
(int)用戶ID-預設值
0
。
apply_filters ( ' wp_weixin_ms_auto_add_to_blog ' , bool $ auto_add_to_blog , int $ blog_id , int $ user_id );
描述
用微信身份驗證時,過濾以自動將使用者新增至網路上造訪的部落格。
參數
$ auto_add_to_blog
(BOOL)以微信進行身份驗證時,將使用者自動新增至網路上造訪的部落格 - 預設為
true
。
$ blog_id
(int)訪問的部落格的ID。
$ user_id
(int)造訪部落格的使用者ID。
apply_filters ( ' wp_weixin_ms_auth_blog_id ' , int $ auth_blog_id );
描述
過濾用於身份驗證的部落格ID-預設情況下,假定在微信後端註冊了預設部落格的網域名稱。
警告:為了確保WP Weixin支援多個官方帳戶,使用包含$auth_blog_id
值的用戶元記錄儲存了綁定帳戶的開放式帳戶( 'wx_openid-' . $auth_blog_id
)。
如果已經存在微信的WordPress使用者(使用微信瀏覽器造訪網站時手動綁定或自動建立),則套用此篩選器並傳回$auth_blog_id
的變更值將破壞使用者與執行時間記錄的OpenID之間的關係。
開發人員可以直接更新資料庫,或執行以下單一使用程式碼段。
在更改用於身份驗證的部落格ID後運行的程式碼片段的範例,以防WordPress用戶已與微信約束:
global $ wpdb ;
$ old_auth_blog_id = 1 ;
$ new_auth_blog_id = 2 ;
$ wpdb -> query (
$ wpdb -> prepare (
" UPDATE $ wpdb -> usermeta SET `meta_key` = 'wx_openid-%d' WHERE `meta_key` = 'wx_openid-%d'; " ,
$ new_auth_blog_id ,
$ old_auth_blog_id
)
);
參數
$ auth_blog_id
(int)在執行微信身份驗證時要使用的部落格ID。預設
1
。
apply_filters ( ' wp_weixin_ms_pay_blog_id ' , int $ pay_blog_id );
描述
過濾用於建立用於從微信付費API撥打並接收付款通知的URL的部落格ID-預設情況下,假定與目前部落格的ID相對應的網域(或子網域)在微信中註冊。如果WooCommerce的幾個實例在同一網路上運行,或者如果網路連接到多個官方帳戶,則有用。
參數
$ pay_blog_id
(int)部落格的ID用於建立QR付款回呼URL。預設
get_current_blog_id()
。
apply_filters ( ' wp_weixin_locate_template_paths ' , array $ paths , string $ plugin_name );
描述
過濾WP Weixin和Companion外掛程式所包含的模板的可能路徑。
參數
$路徑
(數組)可能的路徑。預設值(其中
$template_name
是模板的檔案名稱):array ( ' plugins/wp-weixin/ ' . $ plugin_name . $ template_name , ' wp-weixin/ ' . $ plugin_name . $ template_name , ' plugins/ ' . $ plugin_name . $ template_name , $ plugin_name . $ template_name , ' wp-weixin/ ' . $ template_name , $ template_name , );
$ plugin_name
(字串)模板屬於插件的名稱。
apply_filters ( ' wp_weixin_get_user_by_openid ' , $ user , $ openid );
描述
過濾查詢的結果,使WordPress使用者與記錄的微信開放ID相關聯。
參數
$用戶
(混合)
WP_User
物件如果找到用戶,則為false
否則。
$ OPENID
(字串)用於搜尋使用者的OpenID
apply_filters ( ' wp_weixin_pay_notify_results ' , ( array ) $ results );
描述
過濾處理付款通知的結果。
其實不是直接由WP Weixin本身套用,而是在配套外掛程式啟動WP_Weixin_handle_payment_notification之後。
有關如何新增付款通知結果,請參閱微信付費整合插件骨架。
參數
$結果
(陣列)一系列付款通知結果。結果的結構:
array (
' success ' => false , // optional - (bool) wether the transaction to handle was found ; default false
' data ' => $ data , // required - (array) return value of WP_Weixin_Wechat::getNotify()
' refund ' => false , // optional - (mixed) false if no refund needed, true or an refund message for the user otherwise ; default false
' notify_error ' => false , // optional - (mixed) false if no error, true or an error message otherwise ; if truthy and pay_handler set to true, WeChat Pay API will continue to send notifications for the transaction ; default false
' blog_id ' => $ blog_id , // required for multisite, optional otherwise - (int) the ID of the blog where the original transaction was made ; default the return value of get_current_blog_id()
' pay_handler ' => false , // optional - (bool) wether the result is for the callback registered in the WeChat Pay backend ; default false
/* More custom items can safely be added to the array */
);
apply_filters ( ' wp_weixin_ecommerce_description ' , $ ecommerce_description );
描述
過濾微信支付設定的描述。
參數
$ ecommerce_description
(字串)微信工資設定(HTML)的描述。
apply_filters ( ' wp_weixin_subscribe_qr_url ' , $ wp_weixin_subscribe_qr_url );
描述
過濾微信官方帳號訂閱QR碼的URL。
參數
$ wp_weixin_subscribe_qr_url
(字串)微信官方帳號訂閱QR碼的URL。
使用locate_template()
選擇以下模板文件,並隨WordPress提供的load_template()
函數隨附。這意味著它們可以在活動的WordPress主題中超載。開發人員可以將其自訂範本檔案放在主題資料夾下的以下目錄中(按選擇優先順序):
plugins/wp-weixin/
wp-weixin/
plugins/
可以使用wp_weixin_locate_template_paths filter自訂模板的可用路徑。套用於以下所有模板的樣式稱為'wp-weixin-main-style'
。
範本索引:
wp-weixin-subscribe.php
描述
顯示QR碼的頁面範本以遵循官方帳戶。在設定中啟用“力跟隨”時使用。
$標題
(字串)畫面的標題顯示給使用者。
$訊息
(字串)描述使用者為什麼看到此畫面的訊息。
$ QR_SRC
(字串)QR程式碼圖像的來源。
wp-weixin-browser-qr.php
描述
僅透過微信瀏覽器才能存取網站時,頁面的範本顯示QR碼。
變數
$ page_qr_src
(字串)QR程式碼圖像的來源。
wp-weixin-auth-form-link.php
描述
微信身份驗證連結的範本。
變數
$類
(字串)連結的類別屬性。
$目標
(字串)連結的目標屬性。
wp-weixin-auth-page.php
描述
在經典瀏覽器中顯示了QR碼身份驗證的微信螢幕範本。
wp-weixin-mobile-auth-check.php
描述
透過經典瀏覽器中的QR碼身份驗證微信行動瀏覽器畫面的範本顯示。
變數
$ auth_qr_data
(數組)與身份驗證有關的資料。值類型和鍵:(bool)
auth
,(int)user_id
,(陣列)error
,(bool | string)redirect
。預設情況下,redirect
值實際上不用於重定向(在桌面上進行身份驗證後使用)。
wp-weixin-bind-form-link.php
描述
微信帳戶綁定連結的模板。
變數
$ link_text
(字串)連結的文字。
$ WECHAT_INFO
(混合)一系列微信訊息,如果存在,則為
false
。
$類
(字串)連結的類別屬性。
$目標
(字串)連結的目標屬性。
wp-weixin-bind-page.php
描述
經典瀏覽器中的微信螢幕上顯示了微信螢幕的範本。
變數
$ user_id
(int)用戶的ID綁定到微信帳戶。
$ WECHAT_INFO
(混合)一系列微信訊息,如果存在,則為
false
。
wp-weixin-mobile-bind-check.php
描述
透過經典瀏覽器中的QR碼嘗試到微信帳戶時,顯示了微信行動瀏覽器畫面的範本。
變數
$ bind_qr_data
(陣列)與帳戶綁定有關的資料。值類型和鍵:(bool)
bind
,(int)user_id
,(array)error
,(bool | string)redirect
。redirect
值在行動裝置上始終為false
(在桌面上綁定在帳戶綁定後使用)。
wp-weixin-public-info.php
描述
輸出微信公共資訊的範本 - 當呼叫WP_WEIXIN_GET_USER_WECHAT_INFO的$output
參數設定為false
時,特別是使用。
變數
$ WECHAT_INFO
(數組)微信的公共資訊。價值全部是類型(字串),帶有鑰匙:
nickname
,headimgurl
,sex
,language
,city
,province
,country
,unionid
。
wp-weixin-account-form-password-notice.php
描述
在表格下顯示的通知範本以變更使用者帳戶密碼。
全域變數wx
已與完整的jsApiList
正確簽署並初始化。
要正確使用它,開發人員必須:
wp_enqueue_scripts
ACTION HONK中,優先順序為6
或更多,wp-weixin-main-script
設定為依賴關係此外,可以訂閱提供的聽眾清單。
JavaScript聽眾索引:
範例如何訂閱wpWeixinShareTimelineSuccessListener
偵聽器:
window . wpWeixinShareTimelineSuccessListener ( handleShareTimelineSuccess ) ;
function handleShareTimelineSuccess ( shareInfo ) {
// do something with the data
do_something ( shareInfo ) ;
}
window . wpWeixinShareTimelineSuccessListener ( callback ) ;
訂閱此偵聽器將在成功的微信瞬間分享貼文後執行callback
功能。
參數傳遞給回調
Shareinfo
(對象)發送給微信JS_SDK的共享資訊。屬性是
title
,desc
,link
,imgUrl
。
window . wpWeixinShareTimelineFailureListener ( callback ) ;
訂閱此偵聽器將在分享微信矩上的貼文失敗後執行callback
函數。
參數傳遞給回調
Shareinfo
(對象)發送給微信JS_SDK的共享資訊。屬性是
title
,desc
,link
,imgUrl
。
window . wpWeixinShareAppMessageSuccessListener ( callback ) ; `
訂閱此偵聽器將在與「 send to Chat」成功分享貼文後執行callback
呼功能。
參數傳遞給回調
Shareinfo
(對象)發送給微信JS_SDK的共享資訊。屬性是
title
,desc
,link
,imgUrl
。
window . wpWeixinShareAppMessageFailureListener ( callback ) ;
訂閱此偵聽器將在與「傳送至聊天」的微信之後執行callback
功能。
參數傳遞給回調
Shareinfo
(對象)發送給微信JS_SDK的共享資訊。屬性是
title
,desc
,link
,imgUrl
。