File "contact-form-functions.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/contact-form-7/includes/contact-form-functions.php
File size: 6.81 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

function wpcf7_contact_form($id)
{
    return WPCF7_ContactForm::get_instance($id);
}
function wpcf7_get_contact_form_by_old_id($old_id)
{
    global $wpdb;
    $q = "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key = '_old_cf7_unit_id'" . $wpdb->prepare(" AND meta_value = %d", $old_id);
    if ($new_id = $wpdb->get_var($q)) {
        return wpcf7_contact_form($new_id);
    }
}
function wpcf7_get_contact_form_by_title($title)
{
    $page = get_page_by_title($title, OBJECT, WPCF7_ContactForm::post_type);
    if ($page) {
        return wpcf7_contact_form($page->ID);
    }
    return null;
}
function wpcf7_get_current_contact_form()
{
    if ($current = WPCF7_ContactForm::get_current()) {
        return $current;
    }
}
function wpcf7_is_posted()
{
    if (!($contact_form = wpcf7_get_current_contact_form())) {
        return false;
    }
    return $contact_form->is_posted();
}
function wpcf7_get_hangover($name, $default = null)
{
    if (!wpcf7_is_posted()) {
        return $default;
    }
    $submission = WPCF7_Submission::get_instance();
    if (!$submission or $submission->is('mail_sent')) {
        return $default;
    }
    return isset($_POST[$name]) ? wp_unslash($_POST[$name]) : $default;
}
function wpcf7_get_validation_error($name)
{
    if (!($contact_form = wpcf7_get_current_contact_form())) {
        return '';
    }
    return $contact_form->validation_error($name);
}
function wpcf7_get_validation_error_reference($name)
{
    $contact_form = wpcf7_get_current_contact_form();
    if ($contact_form and $contact_form->validation_error($name)) {
        return sprintf('%1$s-ve-%2$s', $contact_form->unit_tag(), $name);
    }
}
function wpcf7_get_message($status)
{
    if (!($contact_form = wpcf7_get_current_contact_form())) {
        return '';
    }
    return $contact_form->message($status);
}
function wpcf7_form_controls_class($type, $default = '')
{
    $type = trim($type);
    $default = array_filter(explode(' ', $default));
    $classes = array_merge(array('wpcf7-form-control'), $default);
    $typebase = rtrim($type, '*');
    $required = '*' == substr($type, -1);
    $classes[] = 'wpcf7-' . $typebase;
    if ($required) {
        $classes[] = 'wpcf7-validates-as-required';
    }
    $classes = array_unique($classes);
    return implode(' ', $classes);
}
function wpcf7_contact_form_tag_func($atts, $content = null, $code = '')
{
    if (is_feed()) {
        return '[contact-form-7]';
    }
    if ('contact-form-7' == $code) {
        $atts = shortcode_atts(array('id' => 0, 'title' => '', 'html_id' => '', 'html_name' => '', 'html_class' => '', 'output' => 'form'), $atts, 'wpcf7');
        $id = (int) $atts['id'];
        $title = trim($atts['title']);
        if (!($contact_form = wpcf7_contact_form($id))) {
            $contact_form = wpcf7_get_contact_form_by_title($title);
        }
    } else {
        if (is_string($atts)) {
            $atts = explode(' ', $atts, 2);
        }
        $id = (int) array_shift($atts);
        $contact_form = wpcf7_get_contact_form_by_old_id($id);
    }
    if (!$contact_form) {
        return sprintf('[contact-form-7 404 "%s"]', esc_html(__('Not Found', 'contact-form-7')));
    }
    return $contact_form->form_html($atts);
}
function wpcf7_save_contact_form($args = '', $context = 'save')
{
    $args = wp_parse_args($args, array('id' => -1, 'title' => null, 'locale' => null, 'form' => null, 'mail' => null, 'mail_2' => null, 'messages' => null, 'additional_settings' => null));
    $args = wp_unslash($args);
    $args['id'] = (int) $args['id'];
    if (-1 == $args['id']) {
        $contact_form = WPCF7_ContactForm::get_template();
    } else {
        $contact_form = wpcf7_contact_form($args['id']);
    }
    if (empty($contact_form)) {
        return false;
    }
    if (null !== $args['title']) {
        $contact_form->set_title($args['title']);
    }
    if (null !== $args['locale']) {
        $contact_form->set_locale($args['locale']);
    }
    $properties = array();
    if (null !== $args['form']) {
        $properties['form'] = wpcf7_sanitize_form($args['form']);
    }
    if (null !== $args['mail']) {
        $properties['mail'] = wpcf7_sanitize_mail($args['mail']);
        $properties['mail']['active'] = true;
    }
    if (null !== $args['mail_2']) {
        $properties['mail_2'] = wpcf7_sanitize_mail($args['mail_2']);
    }
    if (null !== $args['messages']) {
        $properties['messages'] = wpcf7_sanitize_messages($args['messages']);
    }
    if (null !== $args['additional_settings']) {
        $properties['additional_settings'] = wpcf7_sanitize_additional_settings($args['additional_settings']);
    }
    $contact_form->set_properties($properties);
    do_action('wpcf7_save_contact_form', $contact_form, $args, $context);
    if ('save' == $context) {
        $contact_form->save();
    }
    return $contact_form;
}
function wpcf7_sanitize_form($input, $default = '')
{
    if (null === $input) {
        return $default;
    }
    $output = trim($input);
    if (!current_user_can('unfiltered_html')) {
        $output = wpcf7_kses($output, 'form');
    }
    return $output;
}
function wpcf7_sanitize_mail($input, $defaults = array())
{
    $input = wp_parse_args($input, array('active' => false, 'subject' => '', 'sender' => '', 'recipient' => '', 'body' => '', 'additional_headers' => '', 'attachments' => '', 'use_html' => false, 'exclude_blank' => false));
    $input = wp_parse_args($input, $defaults);
    $output = array();
    $output['active'] = (bool) $input['active'];
    $output['subject'] = trim($input['subject']);
    $output['sender'] = trim($input['sender']);
    $output['recipient'] = trim($input['recipient']);
    $output['body'] = trim($input['body']);
    if (!current_user_can('unfiltered_html')) {
        $output['body'] = wpcf7_kses($output['body'], 'mail');
    }
    $output['additional_headers'] = '';
    $headers = str_replace("\r\n", "\n", $input['additional_headers']);
    $headers = explode("\n", $headers);
    foreach ($headers as $header) {
        $header = trim($header);
        if ('' !== $header) {
            $output['additional_headers'] .= $header . "\n";
        }
    }
    $output['additional_headers'] = trim($output['additional_headers']);
    $output['attachments'] = trim($input['attachments']);
    $output['use_html'] = (bool) $input['use_html'];
    $output['exclude_blank'] = (bool) $input['exclude_blank'];
    return $output;
}
function wpcf7_sanitize_messages($input, $defaults = array())
{
    $output = array();
    foreach (wpcf7_messages() as $key => $val) {
        if (isset($input[$key])) {
            $output[$key] = trim($input[$key]);
        } elseif (isset($defaults[$key])) {
            $output[$key] = $defaults[$key];
        }
    }
    return $output;
}
function wpcf7_sanitize_additional_settings($input, $default = '')
{
    if (null === $input) {
        return $default;
    }
    $output = trim($input);
    return $output;
}