/** * Enqueue scripts. * * @return void */ public function admin_enqueue_scripts() { wp_enqueue_script('jquery'); wp_enqueue_script('jquery-ui'); wp_enqueue_script('jquery-ui-resizable'); wp_enqueue_script('jquery-ui-sortable'); wp_enqueue_script('jquery-ui-tabs'); wp_enqueue_script('jquery-ui-dialog'); wp_enqueue_script('jquery-ui-button'); wp_enqueue_script('jquery-ui-datepicker'); wp_enqueue_script('jquery-ui-autocomplete'); $assets = array('wr-jquery-placeholder-js', 'wr-jquery-tipsy-js', 'wr-jquery-select2-js', 'wr-jquery-wysiwyg-js', 'wr-jquery-wysiwyg-colorpicker-js', 'wr-jquery-wysiwyg-table-js', 'wr-jquery-wysiwyg-cssWrap-js', 'wr-jquery-wysiwyg-image-js', 'wr-jquery-wysiwyg-link-js', 'wr-jquery-wysiwyg-css', 'wr-bootstrap2-css', 'wr-jquery-select2-css', 'wr-bootstrap2-responsive-css', 'wr-bootstrap2-jsn-gui-css', 'wr-bootstrap2-icomoon-css', 'wr-jquery-ui-css', 'wr-jquery-tipsy-css', 'wr-contactform-css', 'wr-contactform-modal-css', 'wr-contactform-emailsettings-js'); WR_CF_Init_Assets::load($assets); }
/** * Constructor. * * @return void */ public function __construct() { // Initialize necessary WR Library classes //Hook Meta Box WR_CF_Init_Meta_Box::hook(); //Hook Post Type WR_CF_Init_Post_Type::hook(); //Hook Assets WR_CF_Init_Assets::hook(); //register post type wordpress WR_Contactform_Helpers_Hook::register_post_type(); // Prepare admin pages if (defined('WP_ADMIN')) { add_action('admin_init', array('WR_CF_Gadget_Base', 'hook'), 100); // add languages add_action('admin_init', array(&$this, 'wr_contactform_languages')); // Register admin menu for IT Contactform Plugin WR_CF_Init_Admin_Menu::hook(); add_action('admin_menu', array('WR_Contactform_Helpers_Hook', 'wr_contactform_register_menus')); // add Filter apply assets add_filter('wr_cf_register_assets', array('WR_Contactform_Helpers_Contactform', 'apply_assets')); // add filter customize the messages add_filter('post_updated_messages', array('WR_Contactform_Helpers_Contactform', 'set_messages')); //Adding "embed form" button add_action('media_buttons', array('WR_Contactform_Helpers_Hook', 'add_form_button'), 20); add_action('restrict_manage_posts', array('WR_Contactform_Helpers_Hook', 'wr_contactform_submissions_filters')); // Load sample forms WR_Contactform_Helpers_Sample_Form::hook(); // Load necessary assets WR_Contactform_Helpers_Hook::load_assets(); } else { global $pagenow; //Hook WR Gadget Base WR_CF_Gadget_Base::hook(); //get short code add_filter('the_content', 'do_shortcode'); // add Filter apply assets add_filter('wr_cf_register_assets', array('WR_Contactform_Helpers_Contactform', 'apply_assets')); //render contactform in frontend add_shortcode('wr_contactform', array(&$this, 'contactform_to_frontend')); //get language contactform in frontend $this->wr_contactform_frontend_languages(); //set content preview add_filter('the_content', array(&$this, 'wr_contactform_front_end_preview')); } }
/** * Setup vertical tabs for theme options form. * * @return void */ public static function wr_form_post_render() { WR_CF_Init_Assets::inline('js', ' $(".oj-form-sections-tabs").addClass("ui-tabs-vertical ui-helper-clearfix"); $(".jsn-form-sections-tabs > ul > li").removeClass("ui-corner-top").addClass("ui-corner-left");'); }
if (is_array($label)) { // Build attributes for option markup tag foreach ($label as $k => $v) { if ('label' != $k) { $attrs[] = esc_attr($k) . '="' . esc_attr($v) . '"'; } } $label = $label['label']; } // Prepare additional attributes $attrs = array(); $attrs = count($attrs) ? implode(' ', $attrs) : ''; $selected = ''; if ($this->value == $value) { $selected = 'selected="selected"'; } $selectHtml .= '<option value="' . $value . '" ' . $attrs . ' ' . $selected . '>'; $selectHtml .= __($label, WR_CONTACTFORM_TEXTDOMAIN); $selectHtml .= '</option>'; } // Trigger click event if option is selected if (false !== strpos($attrs, ' onclick="') && $this->value == $value) { $script = ' $(window).load(function() { $("#' . $this->get('id', null, true) . ' > option[selected]").trigger("click"); });'; WR_CF_Init_Assets::inline('js', $script, true); } } $selectHtml .= '</select></div>'; echo '' . $selectHtml;
/** * generate HTML Pages * * @param Object $postId Post Id * @param Object $formId Form Id * @param String $formName Form Name * @param String $formType Form Type * @param String $topContent Module Top content * @param String $bottomContent Module Bottom Content * @param String $showTitle State Show Title Form * @param String $showDes State Show Description Form * * @return string */ public static function generate_html_pages($postId, $formId, $formName, $formType = '', $topContent = '', $bottomContent = '', $showTitle = false, $showDes = false) { $html = ''; $assets = array(); // add Filter apply assets load_plugin_textdomain(WR_CONTACTFORM_TEXTDOMAIN, false, WR_CONTACTFORM_TEXTDOMAIN . '/frontend/languages/'); //$assets[ ] = 'wr-contactform-jquery-ui-css'; $loadBootstrap = get_option('wr_contactform_load_bootstrap_css', 1); if ($loadBootstrap != '0' && $loadBootstrap != 0) { $assets[] = 'wr-bootstrap2-css'; } $items = get_post_meta((int) $postId); $formPages = self::get_form_content((int) $formId); $scheme = parse_url(get_site_url(), PHP_URL_SCHEME); /* define language */ $arrayTranslated = array('The password must contain minimum %mi% and maximum %mx% character(s)', 'Both email addresses must be the same.', 'The number cannot be less than', 'The number cannot be greater than', 'WR_CONTACTFORM_DATE_HOUR_TEXT', 'WR_CONTACTFORM_DATE_MINUTE_TEXT', 'WR_CONTACTFORM_DATE_CLOSE_TEXT', 'Prev', 'Next', 'Today', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Wk', 'The information cannot contain more than', 'The information cannot contain less than', 'WR_CONTACTFORM_CAPTCHA_PUBLICKEY', 'WR_CONTACTFORM_BUTTON_BACK', 'WR_CONTACTFORM_BUTTON_NEXT', 'WR_CONTACTFORM_BUTTON_RESET', 'WR_CONTACTFORM_BUTTON_SUBMIT', 'This field can not be empty, please enter required information.', 'The information is invalid, please correct.'); /* Check load JS */ $checkLoadJS = array(); $checkLoadJSTipsy = false; $formSettings = !empty($items['form_settings'][0]) ? json_decode($items['form_settings'][0]) : ''; if ($formPages) { $formStyleCustom = new stdClass(); if (!empty($items['form_style'][0])) { $formStyleCustom = json_decode($items['form_style'][0]); } $dataSumbission = ''; $classForm = !empty($formStyleCustom->layout) ? $formStyleCustom->layout : ''; $formTheme = !empty($formStyleCustom->theme) ? $formStyleCustom->theme : ''; if (!$formType) { wp_enqueue_style('contactform_form_' . $formId, site_url() . '/?wr-cf-gadget=contactform-style&action=default&form_id=' . $formId); $html .= "<div class=\"wr-contactform jsn-master\" data-form-name='" . $formName . "' id='wr_form_" . $formId . "'><div class=\"jsn-bootstrap\">"; $html .= $topContent; $html .= "<form name='form_{$formName}' id='form_{$formName}' action=\"" . site_url() . '/?wr-cf-gadget=contactform-frontend&action=default&task=form.save&form_id=' . $formId . "\" method=\"post\" class=\"form-validate {$classForm} \" enctype=\"multipart/form-data\" >"; $html .= "<span class=\"hide wr-language\" style=\"display:none;\" data-value='" . json_encode(WR_Contactform_Helpers_Contactform::get_translated($arrayTranslated)) . "'></span>"; $html .= '<span class="hide wr-base-url" style="display:none;" data-value="' . get_site_url() . '"></span>'; $html .= '<div id="page-loading" class="jsn-bgloading"><i class="jsn-icon32 jsn-icon-loading"></i></div>'; $html .= '<div class="jsn-row-container ' . $formTheme . '">'; } $html .= '<div class="message-contactform"> </div>'; include_once WR_CONTACTFORM_PATH . 'helpers/form.php'; foreach ($formPages as $i => $contentForm) { $pageContainer = !empty($contentForm->page_container) && json_decode($contentForm->page_container) ? $contentForm->page_container : '[[{"columnName":"left","columnClass":"span12"}]]'; $formContent = isset($contentForm->page_content) ? json_decode($contentForm->page_content) : ''; $htmlForm = ''; if (!empty($formContent)) { foreach ($formContent as $content) { if (!empty($content->options->instruction) || !empty($content->instruction)) { $checkLoadJSTipsy = true; } if (!empty($content->type)) { $checkLoadJS[$content->type] = $content->type; } } $htmlForm .= WR_Contactform_Helpers_Form::generate($formContent, $dataSumbission, $pageContainer); } $html .= "<div data-value=\"{$contentForm->page_id}\" class=\"jsn-form-content hide\">{$htmlForm}"; if ($i + 1 == count($formPages)) { $global_captcha_setting = get_option('wr_contactform_global_captcha_setting', 2); if ($global_captcha_setting != 0) { if (!empty($formSettings->form_captcha) && $formSettings->form_captcha == 1) { if ($scheme == 'https') { $html .= '<script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>'; } else { $html .= '<script type="text/javascript" src="http://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>'; } $html .= '<div id="' . md5(date('Y-m-d H:i:s') . $i . $formName) . '" publickey="' . WR_CONTACTFORM_CAPTCHA_PUBLICKEY . '" class="form-captcha control-group"></div>'; } else { if (!empty($formSettings->form_captcha) && $formSettings->form_captcha == 2 || $global_captcha_setting == 1) { include_once WR_CONTACTFORM_PATH . 'libraries/3rd-party/securimage/securimage.php'; $img = new Securimage(); $img->case_sensitive = true; // true to use case sensitve codes - not recommended $img->image_bg_color = new Securimage_Color('#ffffff'); // image background color $img->text_color = new Securimage_Color('#000000'); // captcha text color $img->num_lines = 0; // how many lines to draw over the image $img->line_color = new Securimage_Color('#0000CC'); // color of lines over the image $img->namespace = $formName; $img->signature_color = new Securimage_Color(rand(0, 64), rand(64, 128), rand(128, 255)); // random signature color ob_start(); $img->show(WR_CONTACTFORM_PATH . 'libraries/3rd-party/securimage/backgrounds/bg4.png'); $dataCaptcha = base64_encode(ob_get_clean()); $html .= '<div class="control-group wr-captcha-block"> <div class="controls"> <div class="row-fluid"><img src="data:image/png;base64,' . $dataCaptcha . '" alt="CAPTCHA" /></div> <input type="text" id="wr-captcha" name="captcha" autocomplete="off" placeholder="' . __('Captcha', WR_CONTACTFORM_TEXTDOMAIN) . '"> </div> </div>'; } } } } $html .= '</div>'; } $btnNext = !empty($formSettings->form_btn_next_text) ? $formSettings->form_btn_next_text : 'Next'; $btnPrev = !empty($formSettings->form_btn_prev_text) ? $formSettings->form_btn_prev_text : 'Prev'; $btnSubmit = !empty($formSettings->form_btn_submit_text) ? $formSettings->form_btn_submit_text : 'Submit'; $btnReset = !empty($formSettings->form_btn_reset_text) ? $formSettings->form_btn_reset_text : 'Reset'; $btnNextStyle = !empty($formStyleCustom->button_next_color) ? $formStyleCustom->button_next_color : 'btn btn-primary'; $btnPrevStyle = !empty($formStyleCustom->button_prev_color) ? $formStyleCustom->button_prev_color : 'btn'; $btnSubmitStyle = !empty($formStyleCustom->button_submit_color) ? $formStyleCustom->button_submit_color : 'btn btn-primary'; $btnResetStyle = !empty($formStyleCustom->button_reset_color) ? $formStyleCustom->button_reset_color : 'btn'; $btnPosition = !empty($formStyleCustom->button_position) ? $formStyleCustom->button_position : 'btn-toolbar'; $htmlBtnReset = ''; if (!empty($formSettings->form_state_btn_reset_text) && $formSettings->form_state_btn_reset_text == 'Yes') { $htmlBtnReset = '<button class="' . $btnResetStyle . ' reset" onclick="return false;">' . __($btnReset, WR_CONTACTFORM_TEXTDOMAIN) . '</button>'; } $html .= '<div class="form-actions"> <div class="' . $btnPosition . '"> <button class="' . $btnPrevStyle . ' prev hide" onclick="return false;">' . __($btnPrev, WR_CONTACTFORM_TEXTDOMAIN) . '</button> <button class="' . $btnNextStyle . ' next hide" onclick="return false;">' . __($btnNext, WR_CONTACTFORM_TEXTDOMAIN) . '</button> <button type="submit" class="' . $btnSubmitStyle . ' jsn-form-submit hide" >' . __($btnSubmit, WR_CONTACTFORM_TEXTDOMAIN) . '</button> ' . $htmlBtnReset . ' </div> </div>'; $postAction = isset($items['form_post_action'][0]) ? $items['form_post_action'][0] : ''; $postActionData = isset($items['form_post_action_data'][0]) ? $items['form_post_action_data'][0] : ''; $html .= '<input type="hidden" name="form_name" value="' . $formName . '" />'; if (!$formType) { $html .= '</div>'; $html .= '<input type="hidden" name="form_id" value="' . $formId . '" />'; $html .= '<input type="hidden" id="form_post_action" name="form_post_action" value="' . $postAction . '" />'; $html .= '<input type="hidden" name="form_post_action_data" value=\'' . htmlentities(json_encode(unserialize($postActionData)), ENT_QUOTES, 'UTF-8') . '\' />'; $html .= '</form>'; $html .= $bottomContent; $html .= '</div></div>'; } /* Load JS */ if (!empty($checkLoadJS['date'])) { $assets[] = 'wr-jquery-ui-css'; } wp_enqueue_script('jquery'); //$assets[ ] = 'wr-jquery-json-js'; $assets[] = 'wr-jquery-placeholder-js'; if ($checkLoadJSTipsy) { $assets[] = 'wr-jquery-tipsy-css'; $assets[] = 'wr-jquery-tipsy-js'; } $assets[] = 'wr-jquery-scrollto-js'; $loadBootstrapJs = get_option('wr_contactform_load_bootstrap_js', 1); if ($loadBootstrapJs != '0' && $loadBootstrapJs != 0) { $assets[] = 'wr-frontend-contactform-bootstrap-js'; } if (!empty($checkLoadJS['date'])) { wp_enqueue_script('jquery-ui'); wp_enqueue_script('jquery-ui-datepicker'); $assets[] = 'wr-jquery-daterangepicker-js'; $assets[] = 'wr-jquery-timepicker-js'; } if (!empty($checkLoadJS['google-maps'])) { if ($scheme == 'https') { $assets[] = 'wr-https-googlemaps-api-js'; } else { $assets[] = 'wr-http-googlemaps-api-js'; } $assets[] = 'wr-googlemaps-ui-js'; $assets[] = 'wr-googlemaps-services-js'; $assets[] = 'wr-googlemaps-extensions-js'; } $getFilterAssets = apply_filters('wr_contactform_filter_frontend_load_assets', $assets, $checkLoadJS); if (!empty($getFilterAssets)) { $assets = $getFilterAssets; } $assets[] = 'wr-frontend-contactform-js'; } $assets[] = 'wr-bootstrap2-icomoon-css'; $assets[] = 'wr-bootstrap2-jsn-gui-css'; $assets[] = 'wr-frontend-contactform-css'; WR_CF_Init_Assets::load($assets); return $html; }
-webkit-border-radius: 50%; margin: 0 5px 0 0; } #wr-promo-ab .btn-premium a { padding: 10px 25px; margin: 0; } @media only screen and (max-width: 1232px), (max-device-width: 1232px) { #wr-promo-ab { width:100% } } @media only screen and (max-width: 768px), (max-device-width: 768px) { #wr-promo-ab ul { width: 270px; margin-right: auto; margin-left: auto; } #wr-promo-ab ul li { display: block; text-align: left; margin-left: 0; margin-bottom: 20px; } } '; WR_CF_Init_Assets::inline('css', $style);
<?php wp_enqueue_script('jquery'); wp_enqueue_script('jquery-ui'); wp_enqueue_script('jquery-ui-tabs'); wp_enqueue_script('jquery-ui-dialog'); wp_enqueue_script('jquery-ui-button'); $assets = array('wr-bootstrap2-css', 'wr-bootstrap2-jsn-gui-css', 'wr-bootstrap2-icomoon-css', 'wr-jquery-ui-css', 'wr-jquery-tipsy-css', 'wr-bootstrap2-responsive-css', 'wr-contactform-css', 'wr-http-googlemaps-api-js', 'wr-googlemaps-ui-js', 'wr-googlemaps-services-js', 'wr-googlemaps-extensions-js', 'wr-contactform-submission-js'); WR_CF_Init_Assets::load($assets); $submissionID = !empty($_GET['post']) ? (int) $_GET['post'] : ''; $dataSubmission = get_post($submissionID); $formID = !empty($dataSubmission->post_content) ? (int) $dataSubmission->post_content : ''; if (empty($formID)) { header('Location: ' . get_admin_url() . 'edit.php?post_type=wr_cfsb_post_type'); exit; } $formPostMeta = get_post_meta($formID); $formContent = WR_Contactform_Helpers_Contactform::get_form_content($formID); $submissionData = WR_Contactform_Helpers_Contactform::get_form_data($formID, $submissionID); $submission = new stdClass(); if (!empty($submissionData)) { foreach ($submissionData as $sData) { if (empty($sData->field_id)) { $submission->{$sData->field_type} = $sData->submission_data_value; } else { $submission->{$sData->field_id} = $sData->submission_data_value; } } } ?> <div class="jsn-master">
/** * Register assets with WordPress. * * @return void */ protected static function register() { // Filter assets to be registered self::$assets = apply_filters('wr_cf_register_assets', self::$assets); foreach (self::$assets as $key => $value) { // If asset is registered, continue the loop if (in_array($key, self::$registered)) { continue; } // Store asset being registered self::$registered[] = $key; // Set default value for missing data isset($value['deps']) || ($value['deps'] = array()); isset($value['ver']) || ($value['ver'] = null); // Detect asset type $type = substr($key, -4) == '-css' ? 'style' : 'script'; // Shorten asset and dependency keys $key = preg_replace('/-(css|js)$/', '', $key); foreach ($value['deps'] as $k => $v) { if (array_key_exists($v, self::$assets)) { $value['deps'][$k] = preg_replace('/-(css|js)$/', '', $v); } } // Register asset call_user_func("wp_register_{$type}", $key, $value['src'], $value['deps'], $value['ver']); } }
/** * Insert WooRockets banner. * * @return void */ public static function insert_banner() { $style = ' /*** Premium ***/ #wr-promo-ab { background: url(' . WR_CONTACTFORM_URI . 'assets/images/about-us/bg-wr-promo-2.jpg) center top no-repeat; background-size: auto 100%; text-align: center; overflow: hidden; font-family: \'Open Sans\', \'Helvetica Neue\', Helvetica, Arial, sans-serif; } #wr-promo-ab h3 { margin: 180px 0 15px; color: #fff; font-size: 25px; font-weight: bold; } #wr-promo-ab ul { margin: 0 auto 25px auto; padding: 0; list-style: none; color: #6c7885; width: 250px; } #wr-promo-ab li { line-height: 31px; margin: 0 5px 10px; text-align: left; list-style: none; background: none; padding: 0; } #wr-promo-ab li span { background: #6c7886; float: left; border-radius: 50%; -o-border-radius: 50%; -ms-border-radius: 50%; -moz-border-radius: 50%; -webkit-border-radius: 50%; margin: 0 5px 0 0; } #wr-promo-ab li img { margin: 8px; float: left !important; } #wr-promo-ab .btn-premium { margin: 0 0 78px 0; } #wr-promo-ab .btn-premium a { display: inline-block; margin: 0 10px; background: #418858; color: #fff; padding: 10px 5px; border-radius: 3px; -o-border-radius: 3px; -ms-border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; font-size: 11px; box-shadow: 0 4px 0 0 #2a6d40; -o-box-shadow: 0 4px 0 0 #2a6d40; -ms-box-shadow: 0 4px 0 0 #2a6d40; -moz-box-shadow: 0 4px 0 0 #2a6d40; -webkit-box-shadow: 0 4px 0 0 #2a6d40; text-decoration: none; transition: all 0.3s; -o-transition: all 0.3s; -ms-transition: all 0.3s; -moz-transition: all 0.3s; -webkit-transition: all 0.3s; } #wr-promo-ab .btn-premium strong { font-size: 18px; } #wr-promo-ab .btn-premium a:hover { background: #2a6d40; text-decoration:none; box-shadow: 0 4px 0 0 #418858; -o-box-shadow: 0 4px 0 0 #418858; -ms-box-shadow: 0 4px 0 0 #418858; -moz-box-shadow: 0 4px 0 0 #418858; -webkit-box-shadow: 0 4px 0 0 #418858; } @media only screen and (max-width: 1200px) and (min-width: 768px), (max-device-width: 1200px) and (max-device-width: 768px) { #wr-promo-ab .btn-premium a { padding: 10px 0; margin: 0 10px; } #wr-promo-ab .btn-premium strong { font-size:16px; } } '; WR_CF_Init_Assets::inline('css', $style); $content = '<div id=\\"wr-promo-ab\\"><h3>Premium<br> WooCommerce Themes</h3><ul><li><span><img src=\\"' . WR_CONTACTFORM_URI . 'assets/images/about-us/excellent-icon.png\\"></span>Excellent designs</li><li><span><img src=\\"' . WR_CONTACTFORM_URI . 'assets/images/about-us/unlimited-icon.png\\"></span>Unlimited customization ability</li><li><span><img src=\\"' . WR_CONTACTFORM_URI . 'assets/images/about-us/additional-icon.png\\"></span>Additional eCommerce features</li></ul><p class=\\"btn-premium\\"><a href=\\"http://www.woorockets.com/themes/?utm_source=ContactForm&utm_medium=Editor&utm_campaign=Cross%20Promo%20Banner\\" target=\\"_blank\\"><strong>View the collection now</strong><br><span>And learn how our themes can boost your business!</span></a></p></div>'; $script = ' $("#side-sortables").append("' . $content . '"); '; WR_CF_Init_Assets::inline('js', $script); }