public static function get_instance() { if (empty(self::$instance)) { self::$instance = new self(); } return self::$instance; }
public function scan_form_tags($cond = null) { $manager = WPCF7_FormTagsManager::get_instance(); if (!empty($this->scanned_form_tags)) { $scanned = $this->scanned_form_tags; } else { $scanned = $manager->scan($this->prop('form')); $this->scanned_form_tags = $scanned; } if (empty($scanned)) { return array(); } if (!is_array($cond) || empty($cond)) { return $scanned; } for ($i = 0, $size = count($scanned); $i < $size; $i++) { if (isset($cond['type'])) { if (is_string($cond['type']) && !empty($cond['type'])) { if ($scanned[$i]['type'] != $cond['type']) { unset($scanned[$i]); continue; } } elseif (is_array($cond['type'])) { if (!in_array($scanned[$i]['type'], $cond['type'])) { unset($scanned[$i]); continue; } } } if (isset($cond['name'])) { if (is_string($cond['name']) && !empty($cond['name'])) { if ($scanned[$i]['name'] != $cond['name']) { unset($scanned[$i]); continue; } } elseif (is_array($cond['name'])) { if (!in_array($scanned[$i]['name'], $cond['name'])) { unset($scanned[$i]); continue; } } } } return array_values($scanned); }
public function validate_form() { $body = $this->contact_form->prop('form'); $pattern = '%<label(?:[ \\t\\n]+.*?)?>(.+?)</label>%s'; if (preg_match_all($pattern, $body, $matches)) { $manager = WPCF7_FormTagsManager::get_instance(); foreach ($matches[1] as $insidelabel) { $tags = $manager->scan($insidelabel); $fields_count = 0; foreach ($tags as $tag) { $tag = new WPCF7_FormTag($tag); if (in_array($tag->basetype, array('checkbox', 'radio'))) { $fields_count += count($tag->values); if ($tag->has_option('free_text')) { $fields_count += 1; } } elseif (!empty($tag->name)) { $fields_count += 1; } if (1 < $fields_count) { $this->add_error('form.body', self::error_multiple_controls_in_label, array('link' => __('http://contactform7.com/configuration-errors/#form.body:error_multiple_controls_in_label', 'contact-form-7'))); return; } } } } }
public static function get_instance() { wpcf7_deprecated_function(__METHOD__, '4.6', 'WPCF7_FormTagsManager::get_instance'); self::$form_tags_manager = WPCF7_FormTagsManager::get_instance(); return new self(); }