HEX
Server: Apache
System: Linux ecngx285.inmotionhosting.com 4.18.0-553.79.1.lve.el8.x86_64 #1 SMP Wed Oct 15 17:59:35 UTC 2025 x86_64
User: zeusxp5 (3862)
PHP: 8.3.28
Disabled: NONE
Upload Files
File: /home/zeusxp5/in.kamilleinc.com/wp-content/plugins/weforms/includes/class-emailer.php
<?php

/**
 * Emailer Class
 */
class WeForms_Emailer {

    /**
     * The default gateway to send
     *
     * @var WeForms_Mailer_Contract|null
     */
    private $gateway = null;

    public function __construct() {
        require_once WEFORMS_INCLUDES . '/email/gateways/interface-mailer.php';

        $this->gateway = $this->get_sending_gateway();
    }

    /**
     * Get available gateways
     *
     * @return array
     */
    public function get_available_gateways() {
        require_once WEFORMS_INCLUDES . '/email/gateways/class-emailer-wpmail.php';

        $gateways = apply_filters( 'weforms_email_gateways', [
            'wordpress' => new WeForms_Emailer_WPMail(),
        ] );

        return $gateways;
    }

    /**
     * Get the sending gateway class
     *
     * @return WeForms_Mailer_Contract
     */
    public function get_sending_gateway() {
        $gateway            = weforms_get_settings( 'email_gateway', 'WordPress' );
        $available_gateways = $this->get_available_gateways();

        if ( array_key_exists( $gateway, $available_gateways ) ) {
            return $available_gateways[ $gateway ];
        }

        return $available_gateways['wordpress'];
    }

    /**
     * Send email via the gateway
     *
     * @param string $to      Email addresses to send message
     * @param string $subject Email subject
     * @param string $body    Message contents
     * @param string $headers Optional. Files to attach.
     *
     * @return bool
     */
    public function send( $to, $subject, $body, $headers ) {
        return $this->gateway->send( $to, $subject, $body, $headers );
    }
}