从电子邮件触发WordPress操作?

时间:2017-04-21 作者:dtx

我已经基于WordPress构建了一种市场平台,我想构建一些与电子邮件相关的功能,以使平台更易于使用,更干净。

例如,在用户发布列表后30天向其发送一封电子邮件,询问该列表是否仍然是最新的(如果不是,则可以选择单击链接将其删除),或者提供是/否机制(即我已经有了使用wp_mail() 为了让用户知道其他人对他们的列表感兴趣,并发送该用户的详细信息,因此我想在该电子邮件中添加两个链接,让WordPress向触发原始电子邮件的用户发送确认或拒绝通知)。

我花了很长时间在谷歌上搜索,没有找到任何关于这方面的信息。

删除帖子很容易get_delete_post_link() 但我不知道如何传递$post_ID 以及如何在30天后将其发送出去。

仅仅使用WordPress就可以做到这些吗?或者我需要添加一个电子邮件系统才能工作吗?

1 个回复
SO网友:am_

可以这样解决:

使用wp\\u schedule\\u事件检查是否有用户需要获取邮件

如果是,请发送包含以下链接的邮件

您的网站。com/?用户id=99(&U);myaction=是(&A);mytoken=sometokenforsecurity

将该令牌保存到用户的user\\u meta

    add_user_meta( $user_id, \'mytoken\', $token, true )
在你的情况下,你显然需要第二个链接,action=no或你想叫它什么的

要捕获该链接,可以使用如下“template\\u redirect”:

add_action( \'template_redirect\', \'my_callback\' );


function my_callback() {
  // check if variables are sent
  if ( ! $user_id = filter_input( INPUT_GET, \'user_id\', FILTER_VALIDATE_INT) )
       return;
  if ( ! $action = filter_input( INPUT_GET, \'myaction\' ) )
        return;
  if ( ! $token = filter_input( INPUT_GET, \'mytoken\' ) )
        return;
  // check if token is valid
  $saved_token = get_user_meta( $user_id, \'mytoken\', true );
  if (!empty($saved_token) && $saved_token == $token) {
        // do the action 
        // delete the token
        delete_user_meta($user_id, \'mytoken\');
  }
  // redirect the user to a confirmation page so he knows it worked or did not
  wp_redirect( get_home_url().\'/my-confirmation-page\');

}
希望对你有所帮助!