Email Sender

function custom_email_sender_page() {

    if (isset($_POST['send_custom_email'])) {

        $subject = sanitize_text_field($_POST['subject']);
        $message = wp_kses_post($_POST['message']);
        $role    = sanitize_text_field($_POST['role']);

        $users = [];

        // Send to role OR all users
        if ($role === 'all') {
            $users = get_users();
        } else {
            $users = get_users([
                'role' => $role
            ]);
        }

        $sent = 0;

        foreach ($users as $user) {
            wp_mail(
                $user->user_email,
                $subject,
                $message,
                ['Content-Type: text/html; charset=UTF-8']
            );
            $sent++;
        }

        echo "<div class='updated'><p>Email sent to {$sent} users.</p></div>";
    }

    $roles = wp_roles()->roles;
    ?>

    <div class="wrap">
        <h1>Custom Email Sender</h1>

        <form method="POST" action="">

            <table class="form-table">

                <tr>
                    <th>Send To Role</th>
                    <td>
                        <select name="role" required>
                            <option value="all">All Users</option>
                            <?php foreach ($roles as $key => $role): ?>
                                <option value="<?php echo esc_attr($key); ?>">
                                    <?php echo esc_html($role['name']); ?>
                                </option>
                            <?php endforeach; ?>
                        </select>
                    </td>
                </tr>

                <tr>
                    <th>Subject</th>
                    <td>
                        <input type="text" name="subject" style="width:100%;" required>
                    </td>
                </tr>

                <tr>
                    <th>Message</th>
                    <td>
                        <textarea name="message" rows="10" style="width:100%;" required></textarea>
                    </td>
                </tr>

            </table>

            <p>
                <button type="submit" name="send_custom_email" class="button button-primary">
                    Send Email
                </button>
            </p>

        <input type="hidden" name="trp-form-language" value="am"/></form>
    </div>

    <?php
}
ወደ ላይ ይሸብልሉ