label = __( 'Send Email', 'html-forms' );
}
/**
* @return array
*/
private function get_default_settings() {
$defaults = array(
'from' => get_option( 'admin_email' ),
'to' => get_option( 'admin_email' ),
'subject' => '',
'message' => '',
'headers' => '',
'content_type' => 'text/html',
);
return $defaults;
}
/**
* @param array $settings
* @param string|int $index
*/
public function page_settings( $settings, $index ) {
$settings = array_merge( $this->get_default_settings(), $settings );
?>
get_default_settings(), $settings );
$html_email = $settings['content_type'] === 'text/html';
$to = apply_filters( 'hf_action_email_to', hf_replace_data_variables( $settings['to'], $submission->data, 'strip_tags' ), $submission );
$subject = ! empty( $settings['subject'] ) ? hf_replace_data_variables( $settings['subject'], $submission->data, 'strip_tags' ) : '';
$subject = apply_filters( 'hf_action_email_subject', $subject, $submission );
$message = apply_filters( 'hf_action_email_message', hf_replace_data_variables( $settings['message'], $submission->data, $html_email ? null : 'strip_tags' ), $submission );
// parse additional email headers from settings
$headers = array();
if( ! empty( $settings['headers'] ) ) {
$headers = explode( PHP_EOL, hf_replace_data_variables( $settings['headers'], $submission->data, 'strip_tags' ) );
}
$content_type = $html_email ? 'text/html' : 'text/plain';
$charset = get_bloginfo('charset');
$headers[] = sprintf('Content-Type: %s; charset=%s', $content_type, $charset);
if( ! empty( $settings['from'] ) ) {
$from = apply_filters( 'hf_action_email_from', hf_replace_data_variables( $settings['from'], $submission->data, 'strip_tags' ), $submission );
$headers[] = sprintf( 'From: %s', $from );
}
return wp_mail( $to, $subject, $message, $headers );
}
}