当前位置: 首页 > 知识库问答 >
问题:

如何从自定义HTML电子邮件链接到WordPress WP rest api?

华温书
2023-03-14

我有一个插件,它使用WordPress wp rest api向register_rest_route()注册自定义endpoint,调用回调,向登录用户发送HTML电子邮件,此HTML电子邮件中有一个链接,该链接应回击rest api,并应路由到使用register_rest_route()函数创建的另一个自定义路由,该函数应在路由参数中发送用户年龄,结果将再次调用回调,它应使用用户年龄信息并对其进行处理。我可以发送电子邮件并在收件箱中查看它,但当我按下电子邮件中的链接时(该链接类似于:http://127.0.0.1/myplugin/wp-json/mynamespace/v1/user/25)我没有到达终点并得到:{“code”:“rest_no_route”,“message”:“未找到与URL和请求方法匹配的路由”,“data”:{“status”:404},在chrome调试控制台上,错误消息是“未能加载资源:服务器以404(未找到)状态响应”http://127.0.0.1/myplugin/wp-json/mynamespace/v1/user/25 "

//code for custom end points inside my plugin..

function my_register_endpoints(){


   register_rest_route( 
      // routes that sends an email is working
       .
       .
       .
   );

   register_rest_route(

      'mynamespace/v1',
      'user/(?P<age>[\d]+)',
      array(
          'methods' => 'POST',
          'callback' => 'my_callback',
          'args' => array(
                  'age' => array(
                      'required' => true,
                      'validate_callback' => function($param, $request, $key) {
                        return is_numeric( $param );
                       }
                  )
          ),
          'permission_callback' => function (WP_REST_Request $request) {

              if(!is_user_logged_in()){
                  return new WP_Error('login error',__('You are not logged in','My-Error'));
              }
              return true;

          }
      )

   );

 }

}

add_action('rest_api_init','my_register_endpoints');

function my_callback(WP_REST_Request $request){
  //should do something with $request['age']
  $age=$request['age'];
}

如果有人能够解释并举例说明从自定义html电子邮件中点击wp rest api的过程,我会很高兴?怎么做?它可以是常规链接吗?或者我应该在自定义html电子邮件中使用带有普通JS/JQuery/Angular$超文本传输协议的Ajax请求,并在点击电子邮件中的链接时调用调用?

(我正在使用mailcatcher查看电子邮件,我正在本地主机上的XAMPP上测试我的wordpress网站)

共有1个答案

芮瑾瑜
2023-03-14

尝试使用自定义页面模板,而不是尝试从链接调用endpoint。如果需要,该模板可以通过AJAX或直接从页面模板php调用endpoint。

 类似资料:
  • 我试图发送电子邮件使用Nodejs包Nodemailer,但我无法更改从电子邮件到我的自定义域电子邮件。任何帮助都将不胜感激。这是我用来发送电子邮件的代码。

  • 问题内容: 我正在尝试使用JavaMail以html格式发送电子邮件,但它似乎始终只在Outlook中显示为文本电子邮件。 这是我的代码: 有什么想法为什么电子邮件的html版本不会在Outlook中显示? 问题答案: 经过大量调查,我已经取得了一些重大进展。 首先,我建议不要使用JavaMail,而应使用Jakarta Commons Email 库。这确实大大简化了问题! 现在的代码是: 讲简

  • 本文向大家介绍如何创建一个链接以HTML发送电子邮件?,包括了如何创建一个链接以HTML发送电子邮件?的使用技巧和注意事项,需要的朋友参考一下 要创建发送电子邮件的链接,请使用带有href属性的<a>标记。该的mailto链接<a>标签里面添加。只需记住在mailto链接中添加您想接收电子邮件的电子邮件地址。 示例 您可以尝试运行以下代码来创建一个链接,以HTML格式发送电子邮件。

  • 我有一个插件管理我的货件与两个自定义状态:等待-装运和装运。 我尝试添加一个电子邮件发送时,订单传递到发货。 我在Stack Overflow:Woocommerce退款电子邮件中发现了这一点,但我可以知道它是如何工作的 下面是我的插件文件代码: 我用下面的helgatheviking和Adrien Leber的建议更新了我的代码 和我的班级: 当我改变我的订单状态时,什么也没有发生!我的触发函数

  • 我使用laravel 5.6,并成功地将视图作为电子邮件发送。 我使用以下代码: 我唯一的问题是密码重置。我知道我可以自定义一点模板,但是如何覆盖默认的电子邮件模板并发送我自己的视图? 我尝试写我自己的ResetPassword通知: 但我只能翻译电子邮件。我想要的是根据我自己的模板发送我自己的视图。 可能吗? 谢谢你的帮助。

  • 我试图从我的应用程序发送电子邮件,我在android上的电子邮件客户端中看到了应有的链接,但当我检查电子邮件接收器时,没有链接。 这是我的代码: “文本”是html。 谢谢你。