| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- namespace MailPoet\Subscription;
- if (!defined('ABSPATH')) exit;
- use MailPoet\Settings\SettingsController;
- use MailPoet\Subscribers\SubscriberActions;
- use MailPoet\WP\Functions as WPFunctions;
- class Registration {
- /** @var SettingsController */
- private $settings;
- /** @var SubscriberActions */
- private $subscriberActions;
- /** @var WPFunctions */
- private $wp;
- public function __construct(
- SettingsController $settings,
- WPFunctions $wp,
- SubscriberActions $subscriberActions
- ) {
- $this->settings = $settings;
- $this->subscriberActions = $subscriberActions;
- $this->wp = $wp;
- }
- public function extendForm() {
- $label = $this->settings->get(
- 'subscribe.on_register.label',
- WPFunctions::get()->__('Yes, please add me to your mailing list.', 'mailpoet')
- );
- $form = '<p class="registration-form-mailpoet">
- <label for="mailpoet_subscribe_on_register">
- <input
- type="hidden"
- id="mailpoet_subscribe_on_register_active"
- value="1"
- name="mailpoet[subscribe_on_register_active]"
- />
- <input
- type="checkbox"
- id="mailpoet_subscribe_on_register"
- value="1"
- name="mailpoet[subscribe_on_register]"
- /> ' . esc_attr($label) . '
- </label>
- </p>';
- $this->wp->applyFilters('mailpoet_register_form_extend', $form);
- print $form;
- }
- public function onMultiSiteRegister($result) {
- if (empty($result['errors']->errors)) {
- if (
- isset($_POST['mailpoet']['subscribe_on_register'])
- && (bool)$_POST['mailpoet']['subscribe_on_register'] === true
- ) {
- $this->subscribeNewUser(
- $result['user_name'],
- $result['user_email']
- );
- }
- }
- return $result;
- }
- public function onRegister(
- $errors,
- $userLogin,
- $userEmail = null
- ) {
- if (
- empty($errors->errors)
- && isset($_POST['mailpoet']['subscribe_on_register'])
- && (bool)$_POST['mailpoet']['subscribe_on_register'] === true
- ) {
- $this->subscribeNewUser(
- $userLogin,
- $userEmail
- );
- }
- return $errors;
- }
- private function subscribeNewUser($name, $email) {
- $segmentIds = $this->settings->get(
- 'subscribe.on_register.segments',
- []
- );
- $this->subscriberActions->subscribe(
- [
- 'email' => $email,
- 'first_name' => $name,
- ],
- $segmentIds
- );
- }
- }
|