当我的插件被激活时如何发送电子邮件?

时间:2020-07-18 作者:Saeed

我正在为我的一些私人客户创建和开发一个新插件,我想看看我的客户是否与其他人共享我的插件(我要求他们不要这样做)。

如何在插件中执行操作每次插件激活时,他的网站都会发送一封来自\'[email protected]\'发送到我想要的一封或多封电子邮件\'[email protected]\'和\'[email protected]\'。

顺便问一下,这是否包括他们是否更新插件?或者我只能看到谁只激活了?它是否包括当前激活的插件?

2 个回复
最合适的回答,由SO网友:Younes.D 整理而成

我给你一个想法,我已经用过这样的东西了。我想知道我的插件使用的站点,我创建了一个cron作业,允许我每周向我发送一封电子邮件:

add_action(\'init\', function() {
 $time = wp_next_scheduled(\'dro_cron_hook\');
 wp_unschedule_event($time, \'dro_cron_hook\');

 if (!wp_next_scheduled(\'dro_cron_hook\')) {
    wp_schedule_event(time(), \'everyweek\', \'dro_cron_hook\');
 }
});

add_filter(\'cron_schedules\', function($schedules) {
$schedules[\'everyweek\'] = array(
    \'interval\' => 604800
 );
 return $schedules;
});

add_action(\'dro_cron_hook\', function() {

 // Here you can send the email using wp_mail() and some additional data
});

SO网友:mozboz

所以你的问题有两个部分:

如何在插件激活时运行代码我搜索了“wordpress插件激活挂钩”,找到了https://developer.wordpress.org/plugins/plugin-basics/activation-deactivation-hooks/ 它描述了这个钩子,所以当插件被激活时,您可以调用自己的函数:

register_activation_hook( __FILE__, \'pluginprefix_function_to_run\' );
记录如下:https://developer.wordpress.org/reference/functions/register_activation_hook/

对于第2项,有许多联机示例,介绍如何从PHP和/或在Wordpress基础架构中发送电子邮件。当您将其用于通知时,我建议您考虑使用一个非常简单的REST API样式调用来发送此通知。E、 g.您可以创建如下URLyoursite.com/plugin/ping 你的插件可以在激活时调用该URL,并根据需要在请求参数中附加额外信息。

请注意,无论您如何发送通知,未经他人同意收集有关个人的可识别信息都是不道德的,在欧盟GDPR下也是非法的,因此您需要非常小心收集哪些信息。您可能想考虑许可您的软件,让用户同意许可,而不是您正在做什么,但这个主题与这里的主题有很大出入。