/** * Sets up the widgets name etc */ public function __construct() { $this->renderer = WpPostEmailNotificationPlugin::getInstance()->renderer(); $widget_ops = array('classname' => 'wp_post_email_notification', 'description' => 'Allow people to subscribe to new post notifications.'); parent::__construct('SubscriptionWidget', 'Subscription Widget', $widget_ops); }
* Plugin Name: WP Post Email Notification * Description: Send email notifications to subscribers when a new post is published * Version: 1.0.2 * Author: Nicolai Stäger * Author URI: http://nstaeger.de * License: GNU General Public License v2 or later * License URI: http://www.gnu.org/licenses/gpl-2.0.html */ use Nstaeger\CmsPluginFramework\Item\AssetItem; use Nstaeger\CmsPluginFramework\Configuration; use Nstaeger\CmsPluginFramework\Creator\WordpressCreator; use Nstaeger\WpPostEmailNotification\WpPostEmailNotificationPlugin; defined('ABSPATH') or die('No script kiddies please!'); require __DIR__ . '/vendor/autoload.php'; $config = (require __DIR__ . '/config.php'); $plugin = new WpPostEmailNotificationPlugin(new Configuration($config), new WordpressCreator()); $plugin->permission()->registerPermissionMapping('can_manage', 'manage_options'); $plugin->asset()->addAsset(new AssetItem('js/bundle/frontend-widget.js')); add_action('widgets_init', function () { register_widget('Nstaeger\\WpPostEmailNotification\\Widget\\SubscriptionWidget'); }, 10, 2); add_action('transition_post_status', function ($new_status, $old_status, $post) use($plugin) { if ($post->post_type != 'post') { return; } if ($new_status == 'publish' && $old_status != 'publish') { $plugin->events()->fire('post-published', [$post->ID]); } elseif ($old_status == 'publish' && $new_status != 'publish') { $plugin->events()->fire('post-unpublished', [$post->ID]); } }, 10, 3);