WP Weixin 提供 WordPress 和微信之间的集成。在微信浏览器中自动注册或验证用户,使用微信创建帐户或通过微信扫描二维码在电脑上进行身份验证,在微信朋友圈和对话中分享帖子或扩展插件以获得更多功能!
鼓励开发者以WP微信为核心,利用其公开的功能、操作和过滤器,构建与微信集成的插件和主题,或直接使用提供的SDK。
如果您希望将您的插件添加到此列表中,请联系作者。
要注册域名并授权其与微信API(前端JS和服务器端)之间的通信,该域名必须先链接ICP许可证。然后,在 https://mp.weixin.qq.com 上:
http
或https
),在“JS 接口安全域名”和“网页授权域名”中添加域 - 确保包含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 Weixin 不会也不会依赖于 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。
$用户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
描述
微信身份验证链接的模板。
变量
$ class
(字符串)链接的类属性。
$目标
(字符串)链接的目标属性。
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
。
$ class
(字符串)链接的类属性。
$目标
(字符串)链接的目标属性。
wp-weixin-bind-page.php
描述
经典浏览器中的微信屏幕上显示了微信屏幕的模板。
变量
$用户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
。