Current File : /home/pacjaorg/public_html/wp-content/plugins/newsletter-wpusers/index.php
<?php
defined('ABSPATH') || exit;

/* @var $this NewsletterWpUsers */

include_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
$controls = new NewsletterControls();

if (!$controls->is_action()) {
    $controls->data = $this->options;
} else {
    if ($controls->is_action('save')) {
        unset($controls->data['align_wp_users_status']);
        $this->save_options($controls->data);
        $controls->add_toast_saved();
    }

    if ($controls->is_action('align_wp_users')) {
        ignore_user_abort(true);
        set_time_limit(0);

        $newsletter = Newsletter::instance();

        // TODO: check if the user is already there
        $wp_user_ids = $wpdb->get_results("select id from $wpdb->users where user_email<>''");
        $count = 0;
        foreach ($wp_user_ids as $wp_user_id) {
            $wp_user = new WP_User($wp_user_id->id);

            // A subscriber is already there with the same wp_user_id? Do Nothing.
            $nl_user = Newsletter::instance()->get_user_by_wp_user_id($wp_user->ID);
            if (!empty($nl_user)) {
                continue;
            }

            $email = Newsletter::instance()->normalize_email($wp_user->user_email);

            if (!$email) {
                continue;
            }

            // A subscriber has the same email? Align them if not already associated to another WP user
            $nl_user = Newsletter::instance()->get_user($email);
            if (!empty($nl_user)) {
                Newsletter::instance()->set_user_wp_user_id($nl_user->id, $wp_user->ID);
                continue;
            }

            // Create a new subscriber
            $nl_user = [];
            $nl_user['email'] = $email;
            $nl_user['name'] = strval($wp_user->first_name);
            if (empty($nl_user['name'])) {
                $nl_user['name'] = $wp_user->user_login;
            }
            $nl_user['name'] = $newsletter->normalize_name($nl_user['name']);

            $nl_user['surname'] = $newsletter->normalize_name(strval($wp_user->last_name));
            $nl_user['status'] = $controls->data['align_wp_users_status'];
            $nl_user['wp_user_id'] = $wp_user->ID;
            $nl_user['referrer'] = 'wordpress';

            // Adds the force subscription preferences
            $lists = Newsletter::instance()->get_lists();
            foreach ($lists as $list) {
                if ($list->forced) {
                    $nl_user['list_' . $list->id] = 1;
                }
            }

            // Adds the selected lists for new registered users
            if (!empty($controls->data['lists'])) {
                foreach ($controls->data['lists'] as $p) {
                    $nl_user['list_' . $p] = 1;
                }
            }

            Newsletter::instance()->save_user($nl_user);
            $count++;
        }
        $controls->messages = count($wp_user_ids) . ' ' . __('WordPress users processed', 'newsletter') . '. ';
        $controls->messages .= $count . ' ' . __('subscriptions added', 'newsletter') . '.';
    }

    if ($controls->is_action('link')) {
        /* @var $wpdb wpdb */
        $res = $wpdb->query("update " . NEWSLETTER_USERS_TABLE . " n join " . $wpdb->users . " u on u.user_email=n.email set n.wp_user_id=u.id");
        if ($res === false) {
            $controls->errors = 'Database error: ' . $wpdb->last_error;
        } else {
            $controls->messages = $res . ' ' . __('subscribers linked', 'newsletter') . '.';
        }
    }
}
?>
<div class="wrap" id="tnp-wrap">

    <?php include NEWSLETTER_ADMIN_HEADER; ?>

    <div id="tnp-heading">
        <?php $controls->title_help('https://www.thenewsletterplugin.com/documentation/addons/extended-features/wpusers-extension/') ?>
        <h2>WP Users Integration</h2>
    </div>

    <div id="tnp-body">
        <?php $controls->show(); ?>

        <form method="post" action="">

            <?php $controls->init(); ?>

            <table class="form-table">
                <tr valign="top">
                    <th>Subscription on registration</th>
                    <td>
                        <?php $controls->select('subscribe', array(0 => 'No', 1 => 'Yes, force subscription', 2 => 'Yes, show the option', 3 => 'Yes, show the option already checked')); ?>
                    </td>
                </tr>
                <tr valign="top">
                    <th><?php esc_html_e('Checkbox label', 'newsletter') ?></th>
                    <td>
                        <?php $controls->text('subscribe_label', 30); ?>
                    </td>
                </tr>
                <tr valign="top">
                    <th><?php esc_html_e('Subscribe as', 'newsletter') ?></th>
                    <td>
                        <?php $controls->select('status', array('S' => 'Confirmation required', 'C' => 'Confirmed')); ?>
                    </td>
                </tr>
                <tr valign="top">
                    <th>Send the confirmation email</th>
                    <td>
                        <?php $controls->yesno('confirmation'); ?>
                        <p class="description">Only if the subscription requires confirmation</p>
                    </td>
                </tr>
                <tr valign="top">
                    <th>Confirm on login</th>
                    <td>
                        <?php $controls->yesno('login'); ?>
                    </td>
                </tr>
                <tr valign="top">
                    <th><?php esc_html_e('Send welcome email', 'newsletter') ?></th>
                    <td>
                        <?php $controls->yesno('welcome'); ?>
                    </td>
                </tr>


                <tr valign="top">
                    <th>Lists</th>
                    <td>
                        <?php $controls->preferences_group('lists'); ?>
                        <p class="description">
                            Forcibly add the subscriber to those lists.
                        </p>
                    </td>
                </tr>

                <tr valign="top">
                    <th><?php esc_html_e('Subscription delete', 'newsletter') ?></th>
                    <td>
                        <?php $controls->yesno('delete'); ?>
                        <p class="description">Delete the subscription connected to a WordPress user when that user is deleted</p>
                    </td>
                </tr>
            </table>

            <p>
                <?php $controls->button_save(); ?>
            </p>

            <h3><?php esc_html_e('Import already registered users', 'newsletter') ?></h3>
            <table class="form-table">
                <tr>
                    <th><?php esc_html_e('Import with status', 'newsletter') ?></th>
                    <td>
                        <?php $controls->select('align_wp_users_status', array('C' => __('Confirmed', 'newsletter'), 'S' => __('Not confirmed', 'newsletter'))); ?>
                        <?php $controls->button_confirm('align_wp_users', __('Import', 'newsletter'), __('Proceed?', 'newsletter')); ?>
                        <p class="description">
                            <a href="http://www.thenewsletterplugin.com/plugins/newsletter/subscribers-module#import-wp-users" target="_blank">
                                <?php esc_html_e('Please, carefully read the documentation before taking this action!', 'newsletter') ?>
                            </a>
                        </p>
                    </td>
                </tr>
            </table>

            <h3><?php esc_html_e('Maintenance', 'newsletter') ?></h3>
            <table class="form-table">
                <tr>
                    <th><?php esc_html_e('Link subscribers with users by email', 'newsletter') ?></th>
                    <td>
                        <?php $controls->button_confirm('link', __('Link', 'newsletter'), __('Proceed?', 'newsletter')); ?>
                    </td>
                </tr>
                <tr>
                    <th>
                        <?php esc_html_e('Log level', 'newsletter') ?>
                    </th>
                    <td>
                        <?php $controls->log_level('log_level'); ?>
                    </td>
                </tr>
            </table>

        </form>
    </div>

    <?php include NEWSLETTER_ADMIN_FOOTER; ?>

</div>
Site is undergoing maintenance

PACJA Events

Maintenance mode is on

Site will be available soon. Thank you for your patience!