/home/arranoyd/mice/wp-content/plugins/contact-form-maker/framework/WDW_FM_Library.php
<?php
class WDW_FMC_Library {
/**
* PLUGIN = 2 points to Contact Form Maker
*/
const PLUGIN = 2;
/**
* The single instance of the class.
*/
protected static $_instance = null;
/**
* Main WDW_FMC_Library Instance.
*
* Ensures only one instance is loaded or can be loaded.
*
* @static
* @return WDW_FMC_Library - Main instance.
*/
public static function instance() {
if ( is_null( self::$_instance ) ) {
self::$_instance = new self();
}
return self::$_instance;
}
public static $qpKeys = array(
"\x00",
"\x01",
"\x02",
"\x03",
"\x04",
"\x05",
"\x06",
"\x07",
"\x08",
"\x09",
"\x0A",
"\x0B",
"\x0C",
"\x0D",
"\x0E",
"\x0F",
"\x10",
"\x11",
"\x12",
"\x13",
"\x14",
"\x15",
"\x16",
"\x17",
"\x18",
"\x19",
"\x1A",
"\x1B",
"\x1C",
"\x1D",
"\x1E",
"\x1F",
"\x7F",
"\x80",
"\x81",
"\x82",
"\x83",
"\x84",
"\x85",
"\x86",
"\x87",
"\x88",
"\x89",
"\x8A",
"\x8B",
"\x8C",
"\x8D",
"\x8E",
"\x8F",
"\x90",
"\x91",
"\x92",
"\x93",
"\x94",
"\x95",
"\x96",
"\x97",
"\x98",
"\x99",
"\x9A",
"\x9B",
"\x9C",
"\x9D",
"\x9E",
"\x9F",
"\xA0",
"\xA1",
"\xA2",
"\xA3",
"\xA4",
"\xA5",
"\xA6",
"\xA7",
"\xA8",
"\xA9",
"\xAA",
"\xAB",
"\xAC",
"\xAD",
"\xAE",
"\xAF",
"\xB0",
"\xB1",
"\xB2",
"\xB3",
"\xB4",
"\xB5",
"\xB6",
"\xB7",
"\xB8",
"\xB9",
"\xBA",
"\xBB",
"\xBC",
"\xBD",
"\xBE",
"\xBF",
"\xC0",
"\xC1",
"\xC2",
"\xC3",
"\xC4",
"\xC5",
"\xC6",
"\xC7",
"\xC8",
"\xC9",
"\xCA",
"\xCB",
"\xCC",
"\xCD",
"\xCE",
"\xCF",
"\xD0",
"\xD1",
"\xD2",
"\xD3",
"\xD4",
"\xD5",
"\xD6",
"\xD7",
"\xD8",
"\xD9",
"\xDA",
"\xDB",
"\xDC",
"\xDD",
"\xDE",
"\xDF",
"\xE0",
"\xE1",
"\xE2",
"\xE3",
"\xE4",
"\xE5",
"\xE6",
"\xE7",
"\xE8",
"\xE9",
"\xEA",
"\xEB",
"\xEC",
"\xED",
"\xEE",
"\xEF",
"\xF0",
"\xF1",
"\xF2",
"\xF3",
"\xF4",
"\xF5",
"\xF6",
"\xF7",
"\xF8",
"\xF9",
"\xFA",
"\xFB",
"\xFC",
"\xFD",
"\xFE",
"\xFF"
);
public static $qpReplaceValues = array(
"=00",
"=01",
"=02",
"=03",
"=04",
"=05",
"=06",
"=07",
"=08",
"=09",
"=0A",
"=0B",
"=0C",
"=0D",
"=0E",
"=0F",
"=10",
"=11",
"=12",
"=13",
"=14",
"=15",
"=16",
"=17",
"=18",
"=19",
"=1A",
"=1B",
"=1C",
"=1D",
"=1E",
"=1F",
"=7F",
"=80",
"=81",
"=82",
"=83",
"=84",
"=85",
"=86",
"=87",
"=88",
"=89",
"=8A",
"=8B",
"=8C",
"=8D",
"=8E",
"=8F",
"=90",
"=91",
"=92",
"=93",
"=94",
"=95",
"=96",
"=97",
"=98",
"=99",
"=9A",
"=9B",
"=9C",
"=9D",
"=9E",
"=9F",
"=A0",
"=A1",
"=A2",
"=A3",
"=A4",
"=A5",
"=A6",
"=A7",
"=A8",
"=A9",
"=AA",
"=AB",
"=AC",
"=AD",
"=AE",
"=AF",
"=B0",
"=B1",
"=B2",
"=B3",
"=B4",
"=B5",
"=B6",
"=B7",
"=B8",
"=B9",
"=BA",
"=BB",
"=BC",
"=BD",
"=BE",
"=BF",
"=C0",
"=C1",
"=C2",
"=C3",
"=C4",
"=C5",
"=C6",
"=C7",
"=C8",
"=C9",
"=CA",
"=CB",
"=CC",
"=CD",
"=CE",
"=CF",
"=D0",
"=D1",
"=D2",
"=D3",
"=D4",
"=D5",
"=D6",
"=D7",
"=D8",
"=D9",
"=DA",
"=DB",
"=DC",
"=DD",
"=DE",
"=DF",
"=E0",
"=E1",
"=E2",
"=E3",
"=E4",
"=E5",
"=E6",
"=E7",
"=E8",
"=E9",
"=EA",
"=EB",
"=EC",
"=ED",
"=EE",
"=EF",
"=F0",
"=F1",
"=F2",
"=F3",
"=F4",
"=F5",
"=F6",
"=F7",
"=F8",
"=F9",
"=FA",
"=FB",
"=FC",
"=FD",
"=FE",
"=FF"
);
const LINELENGTH = 72;
const LINEEND = "\n";
public static $fm_js_content;
public static function get_fm_js_content() {
return self::$fm_js_content;
}
/**
* Get request value.
*
* @param string $key
* @param string $default_value
* @param bool $esc_html
*
* @return string|array
*/
public static function get($key, $default_value = '', $esc_html = true) {
if (isset($_GET[$key])) {
$value = $_GET[$key];
}
elseif (isset($_POST[$key])) {
$value = $_POST[$key];
}
elseif (isset($_REQUEST[$key])) {
$value = $_REQUEST[$key];
}
else {
$value = $default_value;
}
if (is_array($value)) {
array_walk_recursive($value, array('self', 'validate_data'), $esc_html);
}
else {
self::validate_data($value, $esc_html);
}
return $value;
}
/**
* Validate data.
*
* @param $value
* @param $esc_html
*/
private static function validate_data(&$value, $esc_html) {
$value = stripslashes($value);
if ($esc_html) {
$value = esc_html($value);
}
}
/**
* Generate message container by message id or directly by message.
*
* @param int $message_id
* @param string $message If message_id is 0
* @param string $type
*
* @return mixed|string|void
*/
public static function message_id($message_id, $message = '', $type = 'updated') {
if ($message_id) {
switch ( $message_id ) {
case 1: {
$message = 'Item Successfully Saved.';
$type = 'updated';
break;
}
case 2: {
$message = 'Failed.';
$type = 'error';
break;
}
case 3: {
$message = 'Item successfully deleted.';
$type = 'updated';
break;
}
case 4: {
$message = "You can't delete default theme";
$type = 'error';
break;
}
case 5: {
// Todo: delete message.
$message = 'Items successfully deleted.';
$type = 'updated';
break;
}
case 6: {
// Todo: delete message.
$message = 'You must select at least one item.';
$type = 'error';
break;
}
case 7: {
$message = 'The item is successfully set as default.';
$type = 'updated';
break;
}
case 8: {
$message = 'Options Successfully Saved.';
$type = 'updated';
break;
}
case 9:
$message = 'Item successfully published.';
$type = 'updated';
break;
case 10:
$message = 'Item successfully unpublished.';
$type = 'updated';
break;
case 11:
$message = 'Item successfully duplicated.';
$type = 'updated';
break;
case 12:
$message = 'IP Successfully Blocked.';
$type = 'updated';
break;
case 13:
$message = 'IP Successfully Unblocked.';
$type = 'updated';
break;
case 14:
$message = 'Submission Successfully Saved.';
$type = 'updated';
break;
default: {
$message = '';
break;
}
}
}
if ($message) {
ob_start();
?><div class="<?php echo $type; ?> inline">
<p>
<strong><?php echo $message; ?></strong>
</p>
</div><?php
$message = ob_get_clean();
}
return $message;
}
/**
* Generate message.
*
* @param string $message
* @param string $type
*
* @return mixed|string|void
*/
public static function message($message, $type) {
if ( $message ) {
ob_start();
?><div class="fm-message <?php echo $type; ?>"><?php echo $message; ?></div><?php
$message = ob_get_clean();
}
return $message;
}
public static function fm_container($theme_id, $form_body) {
return '<div style="display:none" class="fm-form-container fm-theme' . $theme_id . '">' . $form_body . '</div>';
}
/**
* Ordering.
*
* @param $id
* @param $orderby
* @param $order
* @param $text
* @param $page_url
* @param string $additional_class
*
* @return string
*/
public static function ordering($id, $orderby, $order, $text, $page_url, $additional_class = '') {
$class = array(
($orderby == $id ? 'sorted': 'sortable'),
$order,
$additional_class,
'col_' . $id,
);
$order = (($orderby == $id) && ($order == 'asc')) ? 'desc' : 'asc';
ob_start();
?>
<th id="<?php echo $id; ?>" class="<?php echo implode(' ', $class); ?>">
<a href="<?php echo add_query_arg( array('orderby' => $id, 'order' => $order), $page_url ); ?>"
title="<?php _e('Click to sort by this item', WDFMInstance(self::PLUGIN)->prefix); ?>">
<span><?php echo $text; ?></span><span class="sorting-indicator"></span>
</a>
</th>
<?php
return ob_get_clean();
}
//Todo: remove this function.
public static function search($search_by, $search_value, $form_id) {
?>
<div class="alignleft actions" style="clear:both;">
<script>
function fm_search() {
document.getElementById("page_number").value = "1";
document.getElementById("search_or_not").value = "search";
document.getElementById("<?php echo $form_id; ?>").submit();
}
function fm_reset() {
if (document.getElementById("search_value")) {
document.getElementById("search_value").value = "";
}
if (document.getElementById("search_select_value")) {
document.getElementById("search_select_value").value = 0;
}
document.getElementById("<?php echo $form_id; ?>").submit();
}
</script>
<div class="fm-search">
<label for="search_value"><?php echo $search_by; ?>:</label>
<input type="text" id="search_value" name="search_value" value="<?php echo esc_html($search_value); ?>"/>
<button class="fm-icon search-icon" onclick="fm_search()">
</button>
<button class="fm-icon reset-icon" onclick="fm_reset()">
</button>
</div>
</div>
<?php
}
public static function search_select($search_by, $search_select_value, $playlists, $form_id) {
?>
<div class="alignleft actions" style="clear:both;">
<script>
function fm_search_select() {
document.getElementById("page_number").value = "1";
document.getElementById("search_or_not").value = "search";
document.getElementById("<?php echo $form_id; ?>").submit();
}
</script>
<div class="alignleft actions" >
<label for="search_select_value" style="font-size:14px; width:50px; display:inline-block;"><?php echo $search_by; ?>:</label>
<select id="search_select_value" name="search_select_value" onchange="fm_search_select();" style="float: none; width: 150px;">
<?php
foreach ($playlists as $id => $playlist) {
?>
<option value="<?php echo $id; ?>" <?php echo (($search_select_value == $id) ? 'selected="selected"' : ''); ?>><?php echo $playlist; ?></option>
<?php
}
?>
</select>
</div>
</div>
<?php
}
//Todo: remove this function.
public static function html_page_nav($count_items, $page_number, $form_id, $items_per_page = 20) {
$limit = 20;
if ($count_items) {
if ($count_items % $limit) {
$items_county = ($count_items - $count_items % $limit) / $limit + 1;
}
else {
$items_county = ($count_items - $count_items % $limit) / $limit;
}
}
else {
$items_county = 1;
}
?>
<script type="text/javascript">
var items_county = <?php echo $items_county; ?>;
function fm_page(x, y) {
switch (y) {
case 1:
if (x >= items_county) {
document.getElementById('page_number').value = items_county;
}
else {
document.getElementById('page_number').value = x + 1;
}
break;
case 2:
document.getElementById('page_number').value = items_county;
break;
case -1:
if (x == 1) {
document.getElementById('page_number').value = 1;
}
else {
document.getElementById('page_number').value = x - 1;
}
break;
case -2:
document.getElementById('page_number').value = 1;
break;
default:
document.getElementById('page_number').value = 1;
}
jQuery('#pagination_clicked').val('1');
document.getElementById('<?php echo $form_id; ?>').submit();
}
function check_enter_key(e) {
var key_code = (e.keyCode ? e.keyCode : e.which);
if (key_code == 13) { /*Enter keycode*/
if (jQuery('#current_page').val() >= items_county) {
document.getElementById('page_number').value = items_county;
}
else {
document.getElementById('page_number').value = jQuery('#current_page').val();
}
jQuery('#pagination_clicked').val('1');
document.getElementById('<?php echo $form_id; ?>').submit();
}
return true;
}
</script>
<div class="tablenav-pages">
<span class="displaying-num">
<?php
if ($count_items != 0) {
echo $count_items; ?> item<?php echo (($count_items == 1) ? '' : 's');
}
?>
</span>
<?php
if ($count_items > $items_per_page) {
$first_page = "first-page";
$prev_page = "prev-page";
$next_page = "next-page";
$last_page = "last-page";
if ($page_number == 1) {
$first_page = "first-page disabled";
$prev_page = "prev-page disabled";
$next_page = "next-page";
$last_page = "last-page";
}
if ($page_number >= $items_county) {
$first_page = "first-page ";
$prev_page = "prev-page";
$next_page = "next-page disabled";
$last_page = "last-page disabled";
}
?>
<span class="pagination-links">
<a class="<?php echo $first_page; ?>" title="Go to the first page" href="javascript:fm_page(<?php echo $page_number; ?>,-2);">«</a>
<a class="<?php echo $prev_page; ?>" title="Go to the previous page" href="javascript:fm_page(<?php echo $page_number; ?>,-1);">‹</a>
<span class="paging-input">
<span class="total-pages">
<input class="current_page" id="current_page" name="current_page" value="<?php echo $page_number; ?>" onkeypress="return check_enter_key(event)" title="Go to the page" type="text" size="1" />
</span> of
<span class="total-pages">
<?php echo $items_county; ?>
</span>
</span>
<a class="<?php echo $next_page ?>" title="Go to the next page" href="javascript:fm_page(<?php echo $page_number; ?>,1);">›</a>
<a class="<?php echo $last_page ?>" title="Go to the last page" href="javascript:fm_page(<?php echo $page_number; ?>,2);">»</a>
<?php
}
?>
</span>
</div>
<input type="hidden" id="page_number" name="page_number" value="<?php echo ((isset($_POST['page_number'])) ? (int) $_POST['page_number'] : 1); ?>" />
<input type="hidden" id="search_or_not" name="search_or_not" value="<?php echo ((isset($_POST['search_or_not'])) ? esc_html($_POST['search_or_not']) : ''); ?>"/>
<?php
}
public static function ajax_search($search_by, $search_value, $form_id) {
?>
<div class="alignleft actions" style="clear:both;">
<script>
function fm_search() {
document.getElementById("page_number").value = "1";
document.getElementById("search_or_not").value = "search";
fm_ajax_save('<?php echo $form_id; ?>');
}
function fm_reset() {
if (document.getElementById("search_value")) {
document.getElementById("search_value").value = "";
}
fm_ajax_save('<?php echo $form_id; ?>');
}
</script>
<div class="alignleft actions" style="">
<label for="search_value" style="font-size:14px; width:60px; display:inline-block;"><?php echo $search_by; ?>:</label>
<input type="text" id="search_value" name="search_value" class="fm_search_value" value="<?php echo esc_html($search_value); ?>" style="width: 150px;<?php echo (get_bloginfo('version') > '3.7') ? ' height: 28px;' : ''; ?>" />
</div>
<div class="alignleft actions">
<input type="button" value="Search" onclick="fm_search()" class="button-secondary action">
<input type="button" value="Reset" onclick="fm_reset()" class="button-secondary action">
</div>
</div>
<?php
}
public static function ajax_html_page_nav($count_items, $page_number, $form_id) {
$limit = 20;
if ($count_items) {
if ($count_items % $limit) {
$items_county = ($count_items - $count_items % $limit) / $limit + 1;
}
else {
$items_county = ($count_items - $count_items % $limit) / $limit;
}
}
else {
$items_county = 1;
}
?>
<script type="text/javascript">
var items_county = <?php echo $items_county; ?>;
function fm_page(x, y) {
switch (y) {
case 1:
if (x >= items_county) {
document.getElementById('page_number').value = items_county;
}
else {
document.getElementById('page_number').value = x + 1;
}
break;
case 2:
document.getElementById('page_number').value = items_county;
break;
case -1:
if (x == 1) {
document.getElementById('page_number').value = 1;
}
else {
document.getElementById('page_number').value = x - 1;
}
break;
case -2:
document.getElementById('page_number').value = 1;
break;
default:
document.getElementById('page_number').value = 1;
}
fm_ajax_save('<?php echo $form_id; ?>');
}
function check_enter_key(e) {
var key_code = (e.keyCode ? e.keyCode : e.which);
if (key_code == 13) { /*Enter keycode*/
if (jQuery('#current_page').val() >= items_county) {
document.getElementById('page_number').value = items_county;
}
else {
document.getElementById('page_number').value = jQuery('#current_page').val();
}
fm_ajax_save('<?php echo $form_id; ?>');
return false;
}
return true;
}
</script>
<div id="tablenav-pages" class="tablenav-pages">
<span class="displaying-num">
<?php
if ($count_items != 0) {
echo $count_items; ?> item<?php echo (($count_items == 1) ? '' : 's');
}
?>
</span>
<?php
if ($count_items > $limit) {
$first_page = "first-page";
$prev_page = "prev-page";
$next_page = "next-page";
$last_page = "last-page";
if ($page_number == 1) {
$first_page = "first-page disabled";
$prev_page = "prev-page disabled";
$next_page = "next-page";
$last_page = "last-page";
}
if ($page_number >= $items_county) {
$first_page = "first-page ";
$prev_page = "prev-page";
$next_page = "next-page disabled";
$last_page = "last-page disabled";
}
?>
<span class="pagination-links">
<a class="<?php echo $first_page; ?>" title="Go to the first page" onclick="fm_page(<?php echo $page_number; ?>,-2)">«</a>
<a class="<?php echo $prev_page; ?>" title="Go to the previous page" onclick="fm_page(<?php echo $page_number; ?>,-1)">‹</a>
<span class="paging-input">
<span class="total-pages">
<input class="current_page" id="current_page" name="current_page" value="<?php echo $page_number; ?>" onkeypress="return check_enter_key(event)" title="Go to the page" type="text" size="1" />
</span> of
<span class="total-pages">
<?php echo $items_county; ?>
</span>
</span>
<a class="<?php echo $next_page ?>" title="Go to the next page" onclick="fm_page(<?php echo $page_number; ?>,1)">›</a>
<a class="<?php echo $last_page ?>" title="Go to the last page" onclick="fm_page(<?php echo $page_number; ?>,2)">»</a>
<?php
}
?>
</span>
</div>
<input type="hidden" id="page_number" name="page_number" value="<?php echo ((isset($_POST['page_number'])) ? (int) $_POST['page_number'] : 1); ?>" />
<input type="hidden" id="search_or_not" name="search_or_not" value="<?php echo ((isset($_POST['search_or_not'])) ? esc_html($_POST['search_or_not']) : ''); ?>"/>
<?php
}
/**
* FM Redirect.
*
* @param $url
* @param bool $nonce
*/
public static function fm_redirect( $url, $nonce = true ) {
$url = html_entity_decode($url);
if ( $nonce ) {
$url = html_entity_decode(wp_nonce_url($url, WDFMInstance(self::PLUGIN)->nonce, WDFMInstance(self::PLUGIN)->nonce));
}
?>
<script>
window.location = "<?php echo $url; ?>";
</script>
<?php
exit();
}
public static function get_google_fonts() {
$google_fonts = array( 'Open Sans' => 'Open Sans', 'Oswald' => 'Oswald', 'Droid Sans' => 'Droid Sans', 'Lato' => 'Lato', 'Open Sans Condensed' => 'Open Sans Condensed', 'PT Sans' => 'PT Sans', 'Ubuntu' => 'Ubuntu', 'PT Sans Narrow' => 'PT Sans Narrow', 'Yanone Kaffeesatz' => 'Yanone Kaffeesatz', 'Roboto Condensed' => 'Roboto Condensed', 'Source Sans Pro' => 'Source Sans Pro', 'Nunito' => 'Nunito', 'Francois One' => 'Francois One', 'Roboto' => 'Roboto', 'Raleway' => 'Raleway', 'Arimo' => 'Arimo', 'Cuprum' => 'Cuprum', 'Play' => 'Play', 'Dosis' => 'Dosis', 'Abel' => 'Abel', 'Droid Serif' => 'Droid Serif', 'Arvo' => 'Arvo', 'Lora' => 'Lora', 'Rokkitt' => 'Rokkitt', 'PT Serif' => 'PT Serif', 'Bitter' => 'Bitter', 'Merriweather' => 'Merriweather', 'Vollkorn' => 'Vollkorn', 'Cantata One' => 'Cantata One', 'Kreon' => 'Kreon', 'Josefin Slab' => 'Josefin Slab', 'Playfair Display' => 'Playfair Display', 'Bree Serif' => 'Bree Serif', 'Crimson Text' => 'Crimson Text', 'Old Standard TT' => 'Old Standard TT', 'Sanchez' => 'Sanchez', 'Crete Round' => 'Crete Round', 'Cardo' => 'Cardo', 'Noticia Text' => 'Noticia Text', 'Judson' => 'Judson', 'Lobster' => 'Lobster', 'Unkempt' => 'Unkempt', 'Changa One' => 'Changa One', 'Special Elite' => 'Special Elite', 'Chewy' => 'Chewy', 'Comfortaa' => 'Comfortaa', 'Boogaloo' => 'Boogaloo', 'Fredoka One' => 'Fredoka One', 'Luckiest Guy' => 'Luckiest Guy', 'Cherry Cream Soda' => 'Cherry Cream Soda', 'Lobster Two' => 'Lobster Two', 'Righteous' => 'Righteous', 'Squada One' => 'Squada One', 'Black Ops One' => 'Black Ops One', 'Happy Monkey' => 'Happy Monkey', 'Passion One' => 'Passion One', 'Nova Square' => 'Nova Square', 'Metamorphous' => 'Metamorphous', 'Poiret One' => 'Poiret One', 'Bevan' => 'Bevan', 'Shadows Into Light' => 'Shadows Into Light', 'The Girl Next Door' => 'The Girl Next Door', 'Coming Soon' => 'Coming Soon', 'Dancing Script' => 'Dancing Script', 'Pacifico' => 'Pacifico', 'Crafty Girls' => 'Crafty Girls', 'Calligraffitti' => 'Calligraffitti', 'Rock Salt' => 'Rock Salt', 'Amatic SC' => 'Amatic SC', 'Leckerli One' => 'Leckerli One', 'Tangerine' => 'Tangerine', 'Reenie Beanie' => 'Reenie Beanie', 'Satisfy' => 'Satisfy', 'Gloria Hallelujah' => 'Gloria Hallelujah', 'Permanent Marker' => 'Permanent Marker', 'Covered By Your Grace' => 'Covered By Your Grace', 'Walter Turncoat' => 'Walter Turncoat', 'Patrick Hand' => 'Patrick Hand', 'Schoolbell' => 'Schoolbell', 'Indie Flower' => 'Indie Flower' );
return $google_fonts;
}
public static function cleanData( &$str ) {
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if ( strstr($str, '"') ) {
$str = '"' . str_replace('"', '""', $str) . '"';
}
$str = ltrim($str, '=+-@');
}
/**
* Get display options.
*
* @param $id
*
* @return array|null|object|stdClass|void
*/
public static function display_options( $id ) {
global $wpdb;
$row = $wpdb->get_row('SELECT * FROM ' . $wpdb->prefix . 'formmaker_display_options as display WHERE form_id = ' . (int) $id);
if ( !$row ) {
$row = new stdClass();
$row->form_id = $id;
$row->type = 'embedded';
$row->scrollbox_loading_delay = 0;
$row->popover_animate_effect = '';
$row->popover_loading_delay = 0;
$row->popover_frequency = 0;
$row->topbar_position = 1;
$row->topbar_remain_top = 1;
$row->topbar_closing = 1;
$row->topbar_hide_duration = 0;
$row->scrollbox_position = 1;
$row->scrollbox_trigger_point = 20;
$row->scrollbox_hide_duration = 0;
$row->scrollbox_auto_hide = 1;
$row->hide_mobile = 0;
$row->scrollbox_closing = 1;
$row->scrollbox_minimize = 1;
$row->scrollbox_minimize_text = 'The form is minimized';
$row->display_on = 'home,post,page';
$row->posts_include = '';
$row->pages_include = '';
$row->display_on_categories = 'select_all_categories';
$row->current_categories = 'select_all_categories';
$row->show_for_admin = 0;
}
return $row;
}
/**
* Create js file.
*
* @param $form_id
* @param bool $force_rewrite
*/
public static function create_js( $form_id, $force_rewrite = FALSE ) {
$wp_upload_dir = wp_upload_dir();
$frontend_dir = '/form-maker-frontend/';
if ( !is_dir($wp_upload_dir['basedir'] . $frontend_dir) ) {
mkdir($wp_upload_dir['basedir'] . $frontend_dir);
file_put_contents($wp_upload_dir['basedir'] . $frontend_dir . 'index.html', self::forbidden_template());
}
if ( !is_dir($wp_upload_dir['basedir'] . $frontend_dir . 'js') ) {
mkdir($wp_upload_dir['basedir'] . $frontend_dir . 'js');
file_put_contents($wp_upload_dir['basedir'] . $frontend_dir . 'js/index.html', self::forbidden_template());
}
$frontend_js = $wp_upload_dir['basedir'] . $frontend_dir . 'js/fm-script-' . $form_id . '.js';
if ( !$force_rewrite && file_exists($frontend_js) ) {
return;
}
global $wpdb;
$row = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'formmaker WHERE id="%d"', $form_id));
if ( !$row ) {
return;
}
clearstatcache();
$jsfile = fopen($frontend_js, "w");
$pattern = '/\/\/(.+)(\r\n|\r|\n)/';
$row_display = self::display_options($form_id);
$row->javascript = str_replace('function before_reset()', 'function before_reset' . $form_id . '()', $row->javascript);
$row->javascript = str_replace('function before_load()', 'function before_load' . $form_id . '()', $row->javascript);
$row->javascript = str_replace('function before_submit()', 'function before_submit' . $form_id . '()', $row->javascript);
$row->javascript = str_replace('function after_submit()', 'function after_submit' . $form_id . '()', $row->javascript);
$check_js = '';
$onload_js = '';
$onsubmit_js = '';
$form_currency = '$';
if ( $row->payment_currency ) {
$form_currency = $row->payment_currency;
}
$form_currency = apply_filters('fm_form_currency', $form_currency, $form_id);
$form_currency = self::replace_currency_code( $form_currency );
$form_paypal_tax = 0;
if ( $row->paypal_mode && $row->paypal_mode == 1 ) {
$form_paypal_tax = $row->tax;
}
if ( $row->paypal_mode && $row->paypal_mode == 2 ) {
$stripe_data = apply_filters('fm_addon_stripe_get_data_init', array('form_id' => $form_id));
$form_paypal_tax = $stripe_data->stripe_tax;
}
$is_type = array();
$id1s = array();
$types = array();
$labels = array();
$paramss = array();
$fields = explode('*:*new_field*:*', $row->form_fields);
$fields = array_slice($fields, 0, count($fields) - 1);
foreach ( $fields as $field ) {
$temp = explode('*:*id*:*', $field);
array_push($id1s, $temp[0]);
$temp = explode('*:*type*:*', $temp[1]);
array_push($types, $temp[0]);
$temp = explode('*:*w_field_label*:*', $temp[1]);
array_push($labels, $temp[0]);
array_push($paramss, $temp[1]);
}
$labels_and_ids = array_combine($id1s, $types);
$show_hide = array();
$field_label = array();
$all_any = array();
$condition_params = array();
$type_and_id = array();
$condition_js = '';
if ( $row->condition != "" ) {
$conditions = explode('*:*new_condition*:*', $row->condition);
$conditions = array_slice($conditions, 0, count($conditions) - 1);
$count_of_conditions = count($conditions);
foreach ( $conditions as $condition ) {
$temp = explode('*:*show_hide*:*', $condition);
array_push($show_hide, $temp[0]);
$temp = explode('*:*field_label*:*', $temp[1]);
array_push($field_label, $temp[0]);
$temp = explode('*:*all_any*:*', $temp[1]);
array_push($all_any, $temp[0]);
array_push($condition_params, $temp[1]);
}
foreach ( $id1s as $id1s_key => $id1 ) {
$type_and_id[$id1] = $types[$id1s_key];
}
for ( $k = 0; $k < $count_of_conditions; $k++ ) {
if ( $show_hide[$k] ) {
$display = 'removeAttr("style")';
$display_none = 'css("display", "none")';
}
else {
$display = 'css("display", "none")';
$display_none = 'removeAttr("style")';
}
if ( $all_any[$k] == "and" ) {
$or_and = '&&';
}
else {
$or_and = '||';
}
if ( $condition_params[$k] ) {
$cond_params = explode('*:*next_condition*:*', $condition_params[$k]);
$cond_params = array_slice($cond_params, 0, count($cond_params) - 1);
for ( $l = 0; $l < count($cond_params); $l++ ) {
$params_value = explode('***', $cond_params[$l]);
if ( !isset($type_and_id[$params_value[0]]) ) {
unset($cond_params[$l]);
}
}
$cond_params = array_values($cond_params);
$if = '';
$keyup = '';
$change = '';
$click = '';
$blur = '';
for ( $m = 0; $m < count($cond_params); $m++ ) {
$params_value = explode('***', wp_specialchars_decode($cond_params[$m], 'single'));
switch ( $type_and_id[$params_value[0]] ) {
case "type_text":
case "type_star_rating":
case "type_password":
case "type_textarea":
case "type_number":
case "type_submitter_mail":
case "type_spinner":
case "type_paypal_price_new":
case "type_date_new":
case "type_phone_new":
if ( $params_value[1] == "%" || $params_value[1] == "!%" ) {
$like_or_not = ($params_value[1] == "%" ? ">" : "==");
$if .= ' jQuery("#wdform_' . $params_value[0] . '_element' . $form_id . '").val().indexOf("' . $params_value[2] . '")' . $like_or_not . '-1 ';
}
else {
if ( $params_value[1] == "=" || $params_value[1] == "!" ) {
$params_value[2] = "";
$params_value[1] = $params_value[1] . "=";
}
if ( $type_and_id[$params_value[0]] == "type_star_rating" ) {
$if .= ' jQuery("#wdform_' . $params_value[0] . '_selected_star_amount' . $form_id . '").val()' . $params_value[1] . '"' . $params_value[2] . '" ';
}
else {
$if .= ' jQuery("#wdform_' . $params_value[0] . '_element' . $form_id . '").val()' . $params_value[1] . '"' . $params_value[2] . '" ';
}
}
$keyup .= '#wdform_' . $params_value[0] . '_element' . $form_id . ', ';
if ( $type_and_id[$params_value[0]] == "type_date_new" ) {
$change .= '#wdform_' . $params_value[0] . '_element' . $form_id . ', ';
}
if ( $type_and_id[$params_value[0]] == "type_spinner" ) {
$click .= '#wdform_' . $params_value[0] . '_element' . $form_id . ' ~ a, ';
}
if ( $type_and_id[$params_value[0]] == "type_star_rating" ) {
$change .= '#wdform_' . $params_value[0] . '_selected_star_amount' . $form_id . ', ';
}
if ( $type_and_id[$params_value[0]] == "type_phone_new" ) {
$blur = '#wdform_' . $params_value[0] . '_element' . $form_id . ', ';
}
break;
case "type_name":
if ( $params_value[1] == "%" || $params_value[1] == "!%" ) {
$extended0 = '';
$extended1 = '';
$extended2 = '';
$extended3 = '';
$normal0 = '';
$normal1 = '';
$like_or_not = ($params_value[1] == "%" ? ">" : "==");
$name_fields = explode(' ', $params_value[2]);
if ( $name_fields[0] != '' ) {
$extended0 = 'jQuery("#wdform_' . $params_value[0] . '_element_title' . $form_id . '").val().indexOf("' . $name_fields[0] . '")' . $like_or_not . '-1 ';
$normal0 = 'jQuery("#wdform_' . $params_value[0] . '_element_first' . $form_id . '").val().indexOf("' . $name_fields[0] . '")' . $like_or_not . '-1 ';
}
if ( isset($name_fields[1]) && $name_fields[1] != '' ) {
$extended1 = 'jQuery("#wdform_' . $params_value[0] . '_element_first' . $form_id . '").val().indexOf("' . $name_fields[1] . '")' . $like_or_not . '-1 ';
$normal1 = 'jQuery("#wdform_' . $params_value[0] . '_element_last' . $form_id . '").val().indexOf("' . $name_fields[1] . '")' . $like_or_not . '-1 ';
}
if ( isset($name_fields[2]) && $name_fields[2] != '' ) {
$extended2 = 'jQuery("#wdform_' . $params_value[0] . '_element_last' . $form_id . '").val().indexOf("' . $name_fields[2] . '")' . $like_or_not . '-1 ';
}
if ( isset($name_fields[3]) && $name_fields[3] != '' ) {
$extended3 = 'jQuery("#wdform_' . $params_value[0] . '_element_middle' . $form_id . '").val().indexOf("' . $name_fields[3] . '")' . $like_or_not . '-1 ';
}
if ( isset($name_fields[3]) ) {
$extended = '';
$normal = '';
if ( $extended0 ) {
$extended = $extended0;
if ( $extended1 ) {
$extended .= ' && ' . $extended1;
if ( $extended2 ) {
$extended .= ' && ' . $extended2;
}
if ( $extended3 ) {
$extended .= ' && ' . $extended3;
}
}
else {
if ( $extended2 ) {
$extended .= ' && ' . $extended2;
}
if ( $extended3 ) {
$extended .= ' && ' . $extended3;
}
}
}
else {
if ( $extended1 ) {
$extended = $extended1;
if ( $extended2 ) {
$extended .= ' && ' . $extended2;
}
if ( $extended3 ) {
$extended .= ' && ' . $extended3;
}
}
else {
if ( $extended2 ) {
$extended = $extended2;
if ( $extended3 ) {
$extended .= ' && ' . $extended3;
}
}
else {
if ( $extended3 ) {
$extended = $extended3;
}
}
}
}
if ( $normal0 ) {
$normal = $normal0;
if ( $normal1 ) {
$normal .= ' && ' . $normal1;
}
}
else {
if ( $normal1 ) {
$normal = $normal1;
}
}
}
else {
if ( isset($name_fields[2]) ) {
$extended = "";
$normal = "";
if ( $extended0 ) {
$extended = $extended0;
if ( $extended1 ) {
$extended .= ' && ' . $extended1;
}
if ( $extended2 ) {
$extended .= ' && ' . $extended2;
}
}
else {
if ( $extended1 ) {
$extended = $extended1;
if ( $extended2 ) {
$extended .= ' && ' . $extended2;
}
}
else {
if ( $extended2 ) {
$extended = $extended2;
}
}
}
if ( $normal0 ) {
$normal = $normal0;
if ( $normal1 ) {
$normal .= ' && ' . $normal1;
}
}
else {
if ( $normal1 ) {
$normal = $normal1;
}
}
}
else {
if ( isset($name_fields[1]) ) {
$extended = '';
$normal = '';
if ( $extended0 ) {
if ( $extended1 ) {
$extended = $extended0 . ' && ' . $extended1;
}
else {
$extended = $extended0;
}
}
else {
if ( $extended1 ) {
$extended = $extended1;
}
}
if ( $normal0 ) {
if ( $normal1 ) {
$normal = $normal0 . ' && ' . $normal1;
}
else {
$normal = $normal0;
}
}
else {
if ( $normal1 ) {
$normal = $normal1;
}
}
}
else {
$extended = $extended0;
$normal = $normal0;
}
}
}
if ( $extended != "" && $normal != "" ) {
$if .= ' ((jQuery("#wdform_' . $params_value[0] . '_element_title' . $form_id . '").length != 0 || jQuery("#wdform_' . $params_value[0] . '_element_middle' . $form_id . '").length != 0) ? ' . $extended . ' : ' . $normal . ') ';
}
else {
$if .= ' true';
}
}
else {
if ( $params_value[1] == "=" || $params_value[1] == "!" ) {
$name_and_or = $params_value[1] == "=" ? "&&" : "||";
$name_empty_or_not = $params_value[1] . "=";
$extended = ' (jQuery("#wdform_' . $params_value[0] . '_element_title' . $form_id . '").val()' . $name_empty_or_not . '"" ' . $name_and_or . ' jQuery("#wdform_' . $params_value[0] . '_element_first' . $form_id . '").val()' . $name_empty_or_not . '"" ' . $name_and_or . ' jQuery("#wdform_' . $params_value[0] . '_element_last' . $form_id . '").val()' . $name_empty_or_not . '"" ' . $name_and_or . ' jQuery("#wdform_' . $params_value[0] . '_element_middle' . $form_id . '").val()' . $name_empty_or_not . '"") ';
$normal = ' (jQuery("#wdform_' . $params_value[0] . '_element_first' . $form_id . '").val()' . $name_empty_or_not . '"" ' . $name_and_or . ' jQuery("#wdform_' . $params_value[0] . '_element_last' . $form_id . '").val()' . $name_empty_or_not . '"") ';
$if .= ' ((jQuery("#wdform_' . $params_value[0] . '_element_title' . $form_id . '").length != 0 || jQuery("#wdform_' . $params_value[0] . '_element_middle' . $form_id . '").length != 0) ? ' . $extended . ' : ' . $normal . ') ';
}
else {
$extended0 = '';
$extended1 = '';
$extended2 = '';
$extended3 = '';
$normal0 = '';
$normal1 = '';
$name_fields = explode(' ', $params_value[2]);
if ( $name_fields[0] != '' ) {
$extended0 = 'jQuery("#wdform_' . $params_value[0] . '_element_title' . $form_id . '").val()' . $params_value[1] . '"' . $name_fields[0] . '"';
$normal0 = 'jQuery("#wdform_' . $params_value[0] . '_element_first' . $form_id . '").val()' . $params_value[1] . '"' . $name_fields[0] . '"';
}
if ( isset($name_fields[1]) && $name_fields[1] != '' ) {
$extended1 = 'jQuery("#wdform_' . $params_value[0] . '_element_first' . $form_id . '").val()' . $params_value[1] . '"' . $name_fields[1] . '"';
$normal1 = 'jQuery("#wdform_' . $params_value[0] . '_element_last' . $form_id . '").val()' . $params_value[1] . '"' . $name_fields[1] . '"';
}
if ( isset($name_fields[2]) && $name_fields[2] != '' ) {
$extended2 = 'jQuery("#wdform_' . $params_value[0] . '_element_last' . $form_id . '").val()' . $params_value[1] . '"' . $name_fields[2] . '"';
}
if ( isset($name_fields[3]) && $name_fields[3] != '' ) {
$extended3 = 'jQuery("#wdform_' . $params_value[0] . '_element_middle' . $form_id . '").val()' . $params_value[1] . '"' . $name_fields[3] . '"';
}
if ( isset($name_fields[3]) ) {
$extended = '';
$normal = '';
if ( $extended0 ) {
$extended = $extended0;
if ( $extended1 ) {
$extended .= ' && ' . $extended1;
if ( $extended2 ) {
$extended .= ' && ' . $extended2;
}
if ( $extended3 ) {
$extended .= ' && ' . $extended3;
}
}
else {
if ( $extended2 ) {
$extended .= ' && ' . $extended2;
}
if ( $extended3 ) {
$extended .= ' && ' . $extended3;
}
}
}
else {
if ( $extended1 ) {
$extended = $extended1;
if ( $extended2 ) {
$extended .= ' && ' . $extended2;
}
if ( $extended3 ) {
$extended .= ' && ' . $extended3;
}
}
else {
if ( $extended2 ) {
$extended = $extended2;
if ( $extended3 ) {
$extended .= ' && ' . $extended3;
}
}
else {
if ( $extended3 ) {
$extended = $extended3;
}
}
}
}
if ( $normal0 ) {
$normal = $normal0;
if ( $normal1 ) {
$normal .= ' && ' . $normal1;
}
}
else {
if ( $normal1 ) {
$normal = $normal1;
}
}
}
else {
if ( isset($name_fields[2]) ) {
$extended = "";
$normal = "";
if ( $extended0 ) {
$extended = $extended0;
if ( $extended1 ) {
$extended .= ' && ' . $extended1;
}
if ( $extended2 ) {
$extended .= ' && ' . $extended2;
}
}
else {
if ( $extended1 ) {
$extended = $extended1;
if ( $extended2 ) {
$extended .= ' && ' . $extended2;
}
}
else {
if ( $extended2 ) {
$extended = $extended2;
}
}
}
if ( $normal0 ) {
$normal = $normal0;
if ( $normal1 ) {
$normal .= ' && ' . $normal1;
}
}
else {
if ( $normal1 ) {
$normal = $normal1;
}
}
}
else {
if ( isset($name_fields[1]) ) {
$extended = '';
$normal = '';
if ( $extended0 ) {
if ( $extended1 ) {
$extended = $extended0 . ' && ' . $extended1;
}
else {
$extended = $extended0;
}
}
else {
if ( $extended1 ) {
$extended = $extended1;
}
}
if ( $normal0 ) {
if ( $normal1 ) {
$normal = $normal0 . ' && ' . $normal1;
}
else {
$normal = $normal0;
}
}
else {
if ( $normal1 ) {
$normal = $normal1;
}
}
}
else {
$extended = $extended0;
$normal = $normal0;
}
}
}
if ( $extended != "" && $normal != "" ) {
$if .= ' ((jQuery("#wdform_' . $params_value[0] . '_element_title' . $form_id . '").length != 0 || jQuery("#wdform_' . $params_value[0] . '_element_middle' . $form_id . '").length != 0) ? ' . $extended . ' : ' . $normal . ') ';
}
else {
$if .= ' true';
}
}
}
$keyup .= '#wdform_' . $params_value[0] . '_element_title' . $form_id . ', #wdform_' . $params_value[0] . '_element_first' . $form_id . ', #wdform_' . $params_value[0] . '_element_last' . $form_id . ', #wdform_' . $params_value[0] . '_element_middle' . $form_id . ', ';
break;
case "type_phone":
if ( $params_value[1] == "==" || $params_value[1] == "!=" ) {
$phone_fields = explode(' ', $params_value[2]);
if ( isset($phone_fields[1]) ) {
if ( $phone_fields[0] != '' && $phone_fields[1] != '' ) {
$if .= ' (jQuery("#wdform_' . $params_value[0] . '_element_first' . $form_id . '").val()' . $params_value[1] . '"' . $phone_fields[0] . '" && jQuery("#wdform_' . $params_value[0] . '_element_last' . $form_id . '").val()' . $params_value[1] . '"' . $phone_fields[1] . '") ';
}
else {
if ( $phone_fields[0] == '' ) {
$if .= ' (jQuery("#wdform_' . $params_value[0] . '_element_last' . $form_id . '").val()' . $params_value[1] . '"' . $phone_fields[1] . '") ';
}
else {
if ( $phone_fields[1] == '' ) {
$if .= ' (jQuery("#wdform_' . $params_value[0] . '_element_first' . $form_id . '").val()' . $params_value[1] . '"' . $phone_fields[1] . '") ';
}
}
}
}
else {
$if .= ' jQuery("#wdform_' . $params_value[0] . '_element_first' . $form_id . '").val()' . $params_value[1] . '"' . $params_value[2] . '" ';
}
}
if ( $params_value[1] == "%" || $params_value[1] == "!%" ) {
$like_or_not = ($params_value[1] == "%" ? ">" : "==");
$phone_fields = explode(' ', $params_value[2]);
if ( isset($phone_fields[1]) ) {
if ( $phone_fields[0] != '' && $phone_fields[1] != '' ) {
$if .= ' (jQuery("#wdform_' . $params_value[0] . '_element_first' . $form_id . '").val().indexOf("' . $phone_fields[0] . '")' . $like_or_not . '-1 && jQuery("#wdform_' . $params_value[0] . '_element_last' . $form_id . '").val().indexOf("' . $phone_fields[1] . '")' . $like_or_not . '-1)';
}
else {
if ( $phone_fields[0] == '' ) {
$if .= ' (jQuery("#wdform_' . $params_value[0] . '_element_last' . $form_id . '").val().indexOf("' . $phone_fields[1] . '")' . $like_or_not . '-1) ';
}
else {
if ( $phone_fields[1] == '' ) {
$if .= ' (jQuery("#wdform_' . $params_value[0] . '_element_first' . $form_id . '").val().indexOf("' . $phone_fields[0] . '")' . $like_or_not . '-1) ';
}
}
}
}
else {
$if .= ' (jQuery("#wdform_' . $params_value[0] . '_element_first' . $form_id . '").val().indexOf("' . $phone_fields[0] . '")' . $like_or_not . '-1) ';
}
}
if ( $params_value[1] == "=" || $params_value[1] == "!" ) {
$params_value[2] = "";
$and_or_phone = ($params_value[1] == "=" ? "&&" : "||");
$params_value[1] = $params_value[1] . "=";
$if .= ' (jQuery("#wdform_' . $params_value[0] . '_element_first' . $form_id . '").val()' . $params_value[1] . '"' . $params_value[2] . '" ' . $and_or_phone . ' jQuery("#wdform_' . $params_value[0] . '_element_last' . $form_id . '").val()' . $params_value[1] . '"' . $params_value[2] . '") ';
}
$keyup .= '#wdform_' . $params_value[0] . '_element_first' . $form_id . ', #wdform_' . $params_value[0] . '_element_last' . $form_id . ', ';
break;
case "type_paypal_price":
if ( $params_value[1] == "==" || $params_value[1] == "!=" ) {
$if .= ' (jQuery("#wdform_' . $params_value[0] . '_td_name_cents").attr("style") == "display: none;" ? jQuery("#wdform_' . $params_value[0] . '_element_dollars' . $form_id . '").val()' . $params_value[1] . '"' . $params_value[2] . '" : parseFloat(jQuery("#wdform_' . $params_value[0] . '_element_dollars' . $form_id . '").val()+"."+jQuery("#wdform_' . $params_value[0] . '_element_cents' . $form_id . '").val())' . $params_value[1] . 'parseFloat("' . str_replace('.0', '.', $params_value[2]) . '"))';
}
if ( $params_value[1] == "%" || $params_value[1] == "!%" ) {
$like_or_not = ($params_value[1] == "%" ? ">" : "==");
$if .= ' (jQuery("#wdform_' . $params_value[0] . '_td_name_cents").attr("style") == "display: none;" ? jQuery("#wdform_' . $params_value[0] . '_element_dollars' . $form_id . '").val().indexOf("' . $params_value[2] . '")' . $like_or_not . '-1 : (jQuery("#wdform_' . $params_value[0] . '_element_dollars' . $form_id . '").val()+"."+jQuery("#wdform_' . $params_value[0] . '_element_cents' . $form_id . '").val()).indexOf("' . str_replace('.0', '.', $params_value[2]) . '")' . $like_or_not . '-1) ';
}
if ( $params_value[1] == "=" || $params_value[1] == "!" ) {
$params_value[2] = "";
$and_or_price = ($params_value[1] == "=" ? "&&" : "||");
$params_value[1] = $params_value[1] . "=";
$if .= ' (jQuery("#wdform_' . $params_value[0] . '_td_name_cents").attr("style") == "display: none;" ? jQuery("#wdform_' . $params_value[0] . '_element_dollars' . $form_id . '").val()' . $params_value[1] . '"' . $params_value[2] . '" : (jQuery("#wdform_' . $params_value[0] . '_element_dollars' . $form_id . '").val()' . $params_value[1] . '"' . $params_value[2] . '" ' . $and_or_price . ' jQuery("#wdform_' . $params_value[0] . '_element_cents' . $form_id . '").val()' . $params_value[1] . '"' . $params_value[2] . '"))';
}
$keyup .= '#wdform_' . $params_value[0] . '_element_dollars' . $form_id . ', #wdform_' . $params_value[0] . '_element_cents' . $form_id . ', ';
break;
case "type_own_select":
if ( $params_value[1] == "%" || $params_value[1] == "!%" ) {
$like_or_not = ($params_value[1] == "%" ? ">" : "==");
$if .= ' jQuery("#wdform_' . $params_value[0] . '_element' . $form_id . '").val().indexOf("' . $params_value[2] . '")' . $like_or_not . '-1 ';
}
else {
if ( $params_value[1] == "=" || $params_value[1] == "!" ) {
$params_value[2] = "";
$params_value[1] = $params_value[1] . "=";
}
$if .= ' jQuery("#wdform_' . $params_value[0] . '_element' . $form_id . '").val()' . $params_value[1] . '"' . $params_value[2] . '" ';
}
$change .= '#wdform_' . $params_value[0] . '_element' . $form_id . ', ';
break;
case "type_paypal_select":
if ( $params_value[1] == "%" || $params_value[1] == "!%" ) {
$like_or_not = ($params_value[1] == "%" ? ">" : "==");
$if .= ' jQuery("#wdform_' . $params_value[0] . '_element' . $form_id . '").val().indexOf("' . $params_value[2] . '")' . $like_or_not . '-1 ';
}
else {
if ( $params_value[1] == "=" || $params_value[1] == "!" ) {
$params_value[2] = "";
$params_value[1] = $params_value[1] . "=";
$if .= ' jQuery("#wdform_' . $params_value[0] . '_element' . $form_id . '").val()' . $params_value[1] . '"' . $params_value[2] . '"';
}
else {
if ( strpos($params_value[2], '*:*value*:*') > -1 ) {
$and_or = $params_value[1] == "==" ? '&&' : '||';
$choise_and_value = explode("*:*value*:*", $params_value[2]);
$params_value[2] = $choise_and_value[1];
$params_label = $choise_and_value[0];
$if .= ' jQuery("#wdform_' . $params_value[0] . '_element' . $form_id . '").val()' . $params_value[1] . '"' . $params_value[2] . '" ' . $and_or . ' jQuery("div[wdid=' . $params_value[0] . '] select option:selected").text()' . $params_value[1] . '"' . $params_label . '" ';
}
else {
$if .= ' jQuery("#wdform_' . $params_value[0] . '_element' . $form_id . '").val()' . $params_value[1] . '"' . $params_value[2] . '" ';
}
}
}
$change .= '#wdform_' . $params_value[0] . '_element' . $form_id . ', ';
break;
case "type_address":
if ( $params_value[1] == "%" || $params_value[1] == "!%" ) {
$like_or_not = ($params_value[1] == "%" ? ">" : "==");
$if .= ' jQuery("#wdform_' . $params_value[0] . '_country' . $form_id . '").val().indexOf("' . $params_value[2] . '")' . $like_or_not . '-1 ';
}
else {
if ( $params_value[1] == "=" || $params_value[1] == "!" ) {
$params_value[2] = "";
$params_value[1] = $params_value[1] . "=";
}
$if .= ' jQuery("#wdform_' . $params_value[0] . '_country' . $form_id . '").val()' . $params_value[1] . '"' . $params_value[2] . '" ';
}
$change .= '#wdform_' . $params_value[0] . '_country' . $form_id . ', ';
break;
case "type_country":
if ( $params_value[1] == "%" || $params_value[1] == "!%" ) {
$like_or_not = ($params_value[1] == "%" ? ">" : "==");
$if .= ' wdformjQuery("#wdform_' . $params_value[0] . '_element' . $form_id . '").val().indexOf("' . $params_value[2] . '")' . $like_or_not . '-1 ';
}
else {
if ( $params_value[1] == "=" || $params_value[1] == "!" ) {
$params_value[2] = "";
$params_value[1] = $params_value[1] . "=";
}
$if .= ' wdformjQuery("#wdform_' . $params_value[0] . '_element' . $form_id . '").val()' . $params_value[1] . '"' . $params_value[2] . '" ';
}
$change .= '#wdform_' . $params_value[0] . '_element' . $form_id . ', ';
break;
case "type_radio":
case "type_paypal_radio":
case "type_paypal_shipping":
if ( $params_value[1] == "==" || $params_value[1] == "!=" ) {
if ( strpos($params_value[2], '*:*value*:*') > -1 ) {
$and_or = $params_value[1] == "==" ? '&&' : '||';
$choise_and_value = explode("*:*value*:*", $params_value[2]);
$params_value[2] = $choise_and_value[1];
$params_label = $choise_and_value[0];
$if .= ' jQuery("input[name^=\'wdform_' . $params_value[0] . '_element' . $form_id . '\']:checked").val()' . $params_value[1] . '"' . $params_value[2] . '" ' . $and_or . ' jQuery("input[name^=\'wdform_' . $params_value[0] . '_element' . $form_id . '\']:checked").attr("title")' . $params_value[1] . '"' . $params_label . '" ';
}
else {
$if .= ' jQuery("input[name^=\'wdform_' . $params_value[0] . '_element' . $form_id . '\']:checked").val()' . $params_value[1] . '"' . $params_value[2] . '" ';
}
$click .= 'div[wdid=' . $params_value[0] . '] input[type=\'radio\'], ';
}
if ( $params_value[1] == "%" || $params_value[1] == "!%" ) {
$click .= 'div[wdid=' . $params_value[0] . '] input[type=\'radio\'], ';
$like_or_not = ($params_value[1] == "%" ? ">" : "==");
$if .= ' (jQuery("input[name^=\'wdform_' . $params_value[0] . '_element' . $form_id . '\']:checked").val() ? (jQuery("input[name^=\'wdform_' . $params_value[0] . '_element' . $form_id . '\']:checked").attr("other") ? false : (jQuery("input[name^=\'wdform_' . $params_value[0] . '_element' . $form_id . '\']:checked").val().indexOf("' . $params_value[2] . '")' . $like_or_not . '-1 )) : false) ';
}
if ( $params_value[1] == "=" || $params_value[1] == "!" ) {
$ckecked_or_no = ($params_value[1] == "=" ? "!" : "");
$if .= ' ' . $ckecked_or_no . 'jQuery("input[name^=\'wdform_' . $params_value[0] . '_element' . $form_id . '\']:checked").val()';
$click .= 'div[wdid=' . $params_value[0] . '] input[type=\'radio\'], ';
}
break;
case "type_checkbox":
case "type_paypal_checkbox":
if ( $params_value[1] == "==" || $params_value[1] == "!=" ) {
if ( $params_value[2] ) {
$choises = explode('@@@', $params_value[2]);
$choises = array_slice($choises, 0, count($choises) - 1);
if ( $params_value[1] == "!=" ) {
$is = "!";
}
else {
$is = "";
}
foreach ( $choises as $key1 => $choise ) {
if ( $type_and_id[$params_value[0]] == "type_paypal_checkbox" ) {
$choise_and_value = explode("*:*value*:*", $choise);
$if .= ' ' . $is . '(jQuery("#form' . $form_id . ' div[wdid=' . $params_value[0] . '] input[value=\"' . $choise_and_value[1] . '\"]").is(":checked") && jQuery("div[wdid=' . $params_value[0] . '] input[title=\"' . $choise_and_value[0] . '\"]"))';
}
else {
$if .= ' ' . $is . 'jQuery("#form' . $form_id . ' div[wdid=' . $params_value[0] . '] input[value=\"' . $choise . '\"]").is(":checked") ';
}
if ( $key1 != count($choises) - 1 ) {
$if .= '&&';
}
}
$click .= 'div[wdid=' . $params_value[0] . '] input[type=\'checkbox\'], ';
}
else {
if ( $or_and == '&&' ) {
$if .= ' true';
}
else {
$if .= ' false';
}
}
}
if ( $params_value[1] == "%" || $params_value[1] == "!%" ) {
$like_or_not = ($params_value[1] == "%" ? ">" : "==");
if ( $params_value[2] ) {
$choises = explode('@@@', $params_value[2]);
$choises = array_slice($choises, 0, count($choises) - 1);
if ( $type_and_id[$params_value[0]] == "type_paypal_checkbox" ) {
foreach ( $choises as $key1 => $choise ) {
$choise_and_value = explode("*:*value*:*", $choise);
$if .= ' jQuery("div[wdid=' . $params_value[0] . '] input[type=\"checkbox\"]:checked").serialize().indexOf("' . $choise_and_value[1] . '")' . $like_or_not . '-1 ';
if ( $key1 != count($choises) - 1 ) {
$if .= '&&';
}
}
}
else {
foreach ( $choises as $key1 => $choise ) {
$if .= ' jQuery("div[wdid=' . $params_value[0] . '] input[type=\"checkbox\"]:checked").serialize().indexOf("' . str_replace(" ", "+", $choise) . '")' . $like_or_not . '-1 ';
if ( $key1 != count($choises) - 1 ) {
$if .= '&&';
}
}
}
$click .= 'div[wdid=' . $params_value[0] . '] input[type=\'checkbox\'], ';
}
else {
if ( $or_and == '&&' ) {
$if .= ' true';
}
else {
$if .= ' false';
}
}
}
if ( $params_value[1] == "=" || $params_value[1] == "!" ) {
$ckecked_or_no = ($params_value[1] == "=" ? "==" : ">");
$if .= ' jQuery("div[wdid=' . $params_value[0] . '] input[type=\"checkbox\"]:checked").length' . $ckecked_or_no . '0 ';
$click .= 'div[wdid=' . $params_value[0] . '] input[type=\'checkbox\'], ';
}
break;
}
if ( $m != count($cond_params) - 1 ) {
$params_value_next = explode('***', $cond_params[$m + 1]);
if ( isset($type_and_id[$params_value_next[0]]) ) {
$if .= $or_and;
}
}
}
if ( $if ) {
$condition_js .= '
if(' . $if . ') {
jQuery("#form' . $form_id . ' div[wdid=' . $field_label[$k] . ']").' . $display . ';
}
else {
jQuery("#form' . $form_id . ' div[wdid=' . $field_label[$k] . ']").' . $display_none . ';
}';
}
if ( $keyup ) {
$condition_js .= '
jQuery("' . substr($keyup, 0, -2) . '").keyup(function() {
if(' . $if . ') {
jQuery("#form' . $form_id . ' div[wdid=' . $field_label[$k] . ']").' . $display . ';
}
else {
jQuery("#form' . $form_id . ' div[wdid=' . $field_label[$k] . ']").' . $display_none . ';
}
set_total_value(' . $form_id . ');
});';
}
if ( $change ) {
$condition_js .= '
jQuery("' . substr($change, 0, -2) . '").change(function() {
if(' . $if . ') {
jQuery("#form' . $form_id . ' div[wdid=' . $field_label[$k] . ']").' . $display . ';
}
else {
jQuery("#form' . $form_id . ' div[wdid=' . $field_label[$k] . ']").' . $display_none . ';
}
set_total_value(' . $form_id . ');
});';
}
if ( $blur ) {
$condition_js .= '
jQuery("' . substr($blur, 0, -2) . '").blur(function() {
if(' . $if . ')
jQuery("#form' . $form_id . ' div[wdid=' . $field_label[$k] . ']").' . $display . ';
else
jQuery("#form' . $form_id . ' div[wdid=' . $field_label[$k] . ']").' . $display_none . ';
set_total_value(' . $form_id . ');
});';
}
if ( $click ) {
$condition_js .= '
jQuery("' . substr($click, 0, -2) . '").click(function() {
if(' . $if . ') {
jQuery("#form' . $form_id . ' div[wdid=' . $field_label[$k] . ']").' . $display . ';
}
else {
jQuery("#form' . $form_id . ' div[wdid=' . $field_label[$k] . ']").' . $display_none . ';
}
set_total_value(' . $form_id . ');
});';
}
}
}
}
$form = $row->form_front;
$req_fields = array();
$check_regExp_all = array();
$check_paypal_price_min_max = array();
$file_upload_check = array();
$inputIds = array();
$spinner_check = array();
foreach ( $id1s as $id1s_key => $id1 ) {
$label = $labels[$id1s_key];
$type = $types[$id1s_key];
$params = $paramss[$id1s_key];
$id_type = $id1 . '|' . $type;
if ( strpos($form, '%' . $id1 . ' - ' . $label . '%') || strpos($form, '%' . $id1 . ' -' . $label . '%') ) {
$required = FALSE;
$param = array();
$param['attributes'] = '';
$is_type[$type] = TRUE;
switch ( $type ) {
case 'type_send_copy': {
$params_names = array( 'w_field_label_size', 'w_field_label_pos', 'w_first_val', 'w_required' );
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_first_val',
'w_required',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
$onsubmit_js .= 'if(!jQuery("#wdform_' . $id1 . '_element' . $form_id . '").is(":checked")) {
jQuery("<input type=\"hidden\" name=\"wdform_send_copy_' . $form_id . '\" value=\"1\" />").appendTo("#form' . $form_id . '");}';
if ( $required ) {
array_push($req_fields, $id1);
}
break;
}
case 'type_text': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_first_val',
'w_title',
'w_required',
'w_unique',
);
$temp = $params;
if ( strpos($temp, 'w_regExp_status') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_first_val',
'w_title',
'w_required',
'w_regExp_status',
'w_regExp_value',
'w_regExp_common',
'w_regExp_arg',
'w_regExp_alert',
'w_unique',
);
}
if ( strpos($temp, 'w_readonly') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_first_val',
'w_title',
'w_required',
'w_regExp_status',
'w_regExp_value',
'w_regExp_common',
'w_regExp_arg',
'w_regExp_alert',
'w_unique',
'w_readonly',
);
}
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_size',
'w_first_val',
'w_title',
'w_required',
'w_regExp_status',
'w_regExp_value',
'w_regExp_common',
'w_regExp_arg',
'w_regExp_alert',
'w_unique',
'w_readonly',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
$param['w_regExp_status'] = (isset($param['w_regExp_status']) ? $param['w_regExp_status'] : "no");
$check_regExp = '';
if ( $required ) {
array_push($req_fields, $id1);
}
if ( $param['w_regExp_status'] == 'yes' ) {
$check_regExp_all[$id1] = array(
$param["w_regExp_value"],
$param["w_regExp_arg"],
$param["w_regExp_alert"],
);
}
break;
}
case 'type_number': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_first_val',
'w_title',
'w_required',
'w_unique',
'w_class',
);
$temp = $params;
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $required ) {
array_push($req_fields, $id1);
}
break;
}
case 'type_password': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_required',
'w_unique',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_size',
'w_required',
'w_unique',
'w_class',
);
}
if ( strpos($temp, 'w_verification') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_size',
'w_required',
'w_unique',
'w_class',
'w_verification',
'w_verification_label',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $required ) {
array_push($req_fields, $id1);
}
break;
}
case 'type_textarea': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size_w',
'w_size_h',
'w_first_val',
'w_title',
'w_required',
'w_unique',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_size_w',
'w_size_h',
'w_first_val',
'w_title',
'w_required',
'w_unique',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $required ) {
array_push($req_fields, $id1);
}
break;
}
case 'type_phone': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_first_val',
'w_title',
'w_mini_labels',
'w_required',
'w_unique',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_size',
'w_first_val',
'w_title',
'w_mini_labels',
'w_required',
'w_unique',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $required ) {
array_push($req_fields, $id1);
}
break;
}
case 'type_phone_new': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_size',
'w_first_val',
'w_top_country',
'w_required',
'w_unique',
'w_class',
);
$temp = $params;
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $required ) {
array_push($req_fields, $id1);
}
$onload_js .= '
jQuery("#wdform_' . $id1 . '_element' . $form_id . '").intlTelInput({
nationalMode: false,
preferredCountries: [ "' . $param["w_top_country"] . '" ],
customPlaceholder: "Phone",
});
';
break;
}
case 'type_name': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_first_val',
'w_title',
'w_mini_labels',
'w_size',
'w_name_format',
'w_required',
'w_unique',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_name_fields') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_first_val',
'w_title',
'w_mini_labels',
'w_size',
'w_name_format',
'w_required',
'w_unique',
'w_class',
'w_name_fields',
);
}
if ( strpos($temp, 'w_autofill') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_first_val',
'w_title',
'w_mini_labels',
'w_size',
'w_name_format',
'w_required',
'w_unique',
'w_class',
'w_name_fields',
'w_autofill',
);
}
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_first_val',
'w_title',
'w_mini_labels',
'w_size',
'w_name_format',
'w_required',
'w_unique',
'w_class',
'w_name_fields',
'w_autofill',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $required ) {
array_push($req_fields, $id1);
}
break;
}
case 'type_address': {
$w_states = self::get_states();
$w_provinces = self::get_provinces_canada();
$w_state_options = '';
foreach ( $w_states as $w_state ) {
$w_state_options .= '<option value="' . $w_state . '">' . $w_state . '</option>';
}
$w_provinces_options = '';
foreach ( $w_provinces as $w_province ) {
$w_provinces_options .= '<option value="' . $w_province . '">' . $w_province . '</option>';
}
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_mini_labels',
'w_disabled_fields',
'w_required',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_size',
'w_mini_labels',
'w_disabled_fields',
'w_required',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $required ) {
array_push($req_fields, $id1);
}
$post = isset($_POST['wdform_' . ($id1 + 5) . '_country' . $form_id]) ? esc_html(stripslashes($_POST['wdform_' . ($id1 + 5) . '_country' . $form_id])) : NULL;
if ( isset($post) ) {
$onload_js .= '
jQuery("#wdform_' . $id1 . '_country' . $form_id . '").val("' . (isset($_POST['wdform_' . ($id1 + 5) . "_country" . $form_id]) ? esc_html(stripslashes($_POST['wdform_' . ($id1 + 5) . "_country" . $form_id])) : '') . '");';
}
if ( isset($w_disabled_fields[6]) && $w_disabled_fields[6] == 'yes' ) {
$onload_js .= '
jQuery("#wdform_' . $id1 . '_country' . $form_id . '").change(function() {
if( jQuery(this).val() == "United States" ) {
jQuery("#wdform_' . $id1 . '_state' . $form_id . '").parent().append("<select type=\"text\" id=\"wdform_' . $id1 . '_state' . $form_id . '\" name=\"wdform_' . ($id1 + 3) . '_state' . $form_id . '\" style=\"width: 100%;\" ' . $param['attributes'] . '>' . addslashes($w_state_options) . '</select><label class=\"mini_label\" id=\"' . $id1 . '_mini_label_state\">' . $w_mini_labels[3] . '</label>");
jQuery("#wdform_' . $id1 . '_state' . $form_id . '").parent().children("input:first, label:first").remove();
}
else if ( jQuery(this).val() == "Canada" ) {
jQuery("#wdform_' . $id1 . '_state' . $form_id . '").parent().append("<select type=\"text\" id=\"wdform_' . $id1 . '_state' . $form_id . '\" name=\"wdform_' . ($id1 + 3) . '_state' . $form_id . '\" style=\"width: 100%;\" ' . $param['attributes'] . '>' . addslashes($w_provinces_options) . '</select><label class=\"mini_label\" id=\"' . $id1 . '_mini_label_state\">' . $w_mini_labels[3] . '</label>");
jQuery("#wdform_' . $id1 . '_state' . $form_id . '").parent().children("input:first, label:first").remove();
}
else {
if(jQuery("#wdform_' . $id1 . '_state' . $form_id . '").prop("tagName") == "SELECT") {
jQuery("#wdform_' . $id1 . '_state' . $form_id . '").parent().append("<input type=\"text\" id=\"wdform_' . $id1 . '_state' . $form_id . '\" name=\"wdform_' . ($id1 + 3) . '_state' . $form_id . '\" value=\"' . (isset($_POST['wdform_' . ($id1 + 3) . '_state' . $form_id]) ? esc_html(stripslashes($_POST['wdform_' . ($id1 + 3) . '_state' . $form_id])) : "") . '\" style=\"width: 100%;\" ' . $param['attributes'] . '><label class=\"mini_label\">' . $w_mini_labels[3] . '</label>");
jQuery("#wdform_' . $id1 . '_state' . $form_id . '").parent().children("select:first, label:first").remove();
}
}
});';
}
break;
}
case 'type_submitter_mail': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_first_val',
'w_title',
'w_required',
'w_unique',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_autofill') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_first_val',
'w_title',
'w_required',
'w_unique',
'w_class',
'w_autofill',
);
}
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_size',
'w_first_val',
'w_title',
'w_required',
'w_unique',
'w_class',
'w_autofill',
);
}
if ( strpos($temp, 'w_verification') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_size',
'w_first_val',
'w_title',
'w_required',
'w_unique',
'w_class',
'w_verification',
'w_verification_label',
'w_verification_placeholder',
'w_autofill',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $required ) {
array_push($req_fields, $id1);
}
break;
}
case 'type_checkbox': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_flow',
'w_choices',
'w_choices_checked',
'w_rowcol',
'w_required',
'w_randomize',
'w_allow_other',
'w_allow_other_num',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_field_option_pos') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_field_option_pos',
'w_flow',
'w_choices',
'w_choices_checked',
'w_rowcol',
'w_required',
'w_randomize',
'w_allow_other',
'w_allow_other_num',
'w_value_disabled',
'w_choices_value',
'w_choices_params',
'w_class',
);
}
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_field_option_pos',
'w_hide_label',
'w_flow',
'w_choices',
'w_choices_checked',
'w_rowcol',
'w_required',
'w_randomize',
'w_allow_other',
'w_allow_other_num',
'w_value_disabled',
'w_choices_value',
'w_choices_params',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
if ( isset($param['w_choices_value']) ) {
$param['w_choices_value'] = explode('***', $param['w_choices_value']);
$param['w_choices_params'] = explode('***', $param['w_choices_params']);
}
foreach ( $param['w_choices_params'] as $choices ) {
if ( !empty($choices) ) {
preg_match_all('/{\d+}/', $choices, $matches);
if ( !empty($matches[0][0]) ) {
$inputIds[$id_type][] = str_replace( array('{','}'), array('',''), $matches[0][0] );
}
}
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
$post_value = isset($_POST["counter" . $form_id]) ? esc_html($_POST["counter" . $form_id]) : NULL;
$is_other = FALSE;
if ( isset($post_value) ) {
if ( $param['w_allow_other'] == "yes" ) {
$is_other = FALSE;
$other_element = isset($_POST['wdform_' . $id1 . "_other_input" . $form_id]) ? esc_html($_POST['wdform_' . $id1 . "_other_input" . $form_id]) : NULL;
if ( isset($other_element) ) {
$is_other = TRUE;
}
}
}
else {
$is_other = ($param['w_allow_other'] == "yes" && $param['w_choices_checked'][$param['w_allow_other_num']] == 'true');
}
if ( $required ) {
array_push($req_fields, $id1);
}
if ( $is_other ) {
$onload_js .= 'show_other_input("wdform_' . $id1 . '","' . $form_id . '"); jQuery("#wdform_' . $id1 . '_other_input' . $form_id . '").val("' . (isset($_POST['wdform_' . $id1 . "_other_input" . $form_id]) ? esc_html(stripslashes($_POST['wdform_' . $id1 . "_other_input" . $form_id])) : '') . '");';
}
if ( $param['w_randomize'] == 'yes' ) {
$onload_js .= 'jQuery("#form' . $form_id . ' div[wdid=' . $id1 . '] .wdform-element-section> div").shuffle();';
}
$onsubmit_js .= '
jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_allow_other' . $form_id . '\" value=\"' . $param['w_allow_other'] . '\" />").appendTo("#form' . $form_id . '");
jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_allow_other_num' . $form_id . '\" value=\"' . $param['w_allow_other_num'] . '\" />").appendTo("#form' . $form_id . '");';
break;
}
case 'type_radio': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_flow',
'w_choices',
'w_choices_checked',
'w_rowcol',
'w_required',
'w_randomize',
'w_allow_other',
'w_allow_other_num',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_field_option_pos') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_field_option_pos',
'w_flow',
'w_choices',
'w_choices_checked',
'w_rowcol',
'w_required',
'w_randomize',
'w_allow_other',
'w_allow_other_num',
'w_value_disabled',
'w_choices_value',
'w_choices_params',
'w_class',
);
}
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_field_option_pos',
'w_hide_label',
'w_flow',
'w_choices',
'w_choices_checked',
'w_rowcol',
'w_required',
'w_randomize',
'w_allow_other',
'w_allow_other_num',
'w_value_disabled',
'w_choices_value',
'w_choices_params',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
if ( isset($param['w_choices_value']) ) {
$param['w_choices_value'] = explode('***', $param['w_choices_value']);
$param['w_choices_params'] = explode('***', $param['w_choices_params']);
}
foreach ( $param['w_choices_params'] as $choices ) {
if ( !empty($choices) ) {
preg_match_all('/{\d+}/', $choices, $matches);
if ( !empty($matches[0][0]) ) {
$inputIds[$id_type][] = str_replace( array('{','}'), array('',''), $matches[0][0] );
}
}
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
$post_value = isset($_POST["counter" . $form_id]) ? esc_html($_POST["counter" . $form_id]) : NULL;
$is_other = FALSE;
if ( isset($post_value) ) {
if ( $param['w_allow_other'] == "yes" ) {
$is_other = FALSE;
$other_element = isset($_POST['wdform_' . $id1 . "_other_input" . $form_id]) ? esc_html(stripslashes($_POST['wdform_' . $id1 . "_other_input" . $form_id])) : "";
if ( isset($other_element) ) {
$is_other = TRUE;
}
}
}
else {
$is_other = ($param['w_allow_other'] == "yes" && $param['w_choices_checked'][$param['w_allow_other_num']] == 'true');
}
if ( $required ) {
array_push($req_fields, $id1);
}
if ( $is_other ) {
$onload_js .= '
show_other_input("wdform_' . $id1 . '","' . $form_id . '"); jQuery("#wdform_' . $id1 . '_other_input' . $form_id . '").val("' . (isset($_POST['wdform_' . $id1 . "_other_input" . $form_id]) ? esc_html(stripslashes($_POST['wdform_' . $id1 . "_other_input" . $form_id])) : '') . '");';
}
if ( $param['w_randomize'] == 'yes' ) {
$onload_js .= '
jQuery("#form' . $form_id . ' div[wdid=' . $id1 . '] .wdform-element-section> div").shuffle();';
}
$onsubmit_js .= '
jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_allow_other' . $form_id . '\" value=\"' . $param['w_allow_other'] . '\" />").appendTo("#form' . $form_id . '");
jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_allow_other_num' . $form_id . '\" value=\"' . $param['w_allow_other_num'] . '\" />").appendTo("#form' . $form_id . '");';
break;
}
case 'type_own_select': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_choices',
'w_choices_checked',
'w_choices_disabled',
'w_required',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_choices_value') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_choices',
'w_choices_checked',
'w_choices_disabled',
'w_required',
'w_value_disabled',
'w_choices_value',
'w_choices_params',
'w_class',
);
}
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_size',
'w_choices',
'w_choices_checked',
'w_choices_disabled',
'w_required',
'w_value_disabled',
'w_choices_value',
'w_choices_params',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
if ( isset($param['w_choices_value']) ) {
$param['w_choices_value'] = explode('***', $param['w_choices_value']);
$param['w_choices_params'] = explode('***', $param['w_choices_params']);
}
foreach ( $param['w_choices_params'] as $choices ) {
if ( !empty($choices) ) {
preg_match_all('/{\d+}/', $choices, $matches);
if ( !empty($matches[0][0]) ) {
$inputIds[$id_type][] = str_replace( array('{','}'), array('',''), $matches[0][0] );
}
}
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $required ) {
array_push($req_fields, $id1);
}
break;
}
case 'type_country': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_countries',
'w_required',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_size',
'w_countries',
'w_required',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $required ) {
array_push($req_fields, $id1);
}
break;
}
case 'type_time': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_time_type',
'w_am_pm',
'w_sec',
'w_hh',
'w_mm',
'w_ss',
'w_mini_labels',
'w_required',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_time_type',
'w_am_pm',
'w_sec',
'w_hh',
'w_mm',
'w_ss',
'w_mini_labels',
'w_required',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $required ) {
array_push($req_fields, $id1);
}
break;
}
case 'type_date': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_date',
'w_required',
'w_class',
'w_format',
'w_but_val',
);
$temp = $params;
if ( strpos($temp, 'w_disable_past_days') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_date',
'w_required',
'w_class',
'w_format',
'w_but_val',
'w_disable_past_days',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
$param['w_disable_past_days'] = isset($param['w_disable_past_days']) ? $param['w_disable_past_days'] : 'no';
$disable_past_days = $param['w_disable_past_days'] == 'yes' ? 'true' : 'false';
if ( $required ) {
array_push($req_fields, $id1);
}
if ( $disable_past_days == 'true' ) {
$check_js .= '
if( Date.parse(jQuery("#wdform_' . $id1 . '_element' . $form_id . '").val() + " 23:59:59") < fm_currentDate.getTime() ) {
alert("' . __('You cannot select former dates. Choose a date starting from the current one.', WDFMInstance(self::PLUGIN)->prefix) . '");
return false;
}';
}
$date_format= str_replace('%', '', $param['w_format']);
$onsubmit_js .= '
jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_date_format' . $form_id . '\" value=\"' . $date_format . '\" />").appendTo("#form' . $form_id . '");';
break;
}
case 'type_date_new': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_date',
'w_required',
'w_show_image',
'w_class',
'w_format',
'w_start_day',
'w_default_date',
'w_min_date',
'w_max_date',
'w_invalid_dates',
'w_show_days',
'w_hide_time',
'w_but_val',
'w_disable_past_days',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_size',
'w_date',
'w_required',
'w_show_image',
'w_class',
'w_format',
'w_start_day',
'w_default_date',
'w_min_date',
'w_max_date',
'w_invalid_dates',
'w_show_days',
'w_hide_time',
'w_but_val',
'w_disable_past_days',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
$default_date = (isset($_POST['wdform_' . $id1 . "_element" . $form_id]) ? esc_html(stripslashes($_POST['wdform_' . $id1 . "_element" . $form_id])) : $param['w_default_date']);
$w_show_week_days = explode('***', $param['w_show_days']);
$w_hide_sunday = $w_show_week_days[0] == 'yes' ? '' : ' && day != 0';
$w_hide_monday = $w_show_week_days[1] == 'yes' ? '' : ' && day != 1';
$w_hide_tuesday = $w_show_week_days[2] == 'yes' ? '' : ' && day != 2';
$w_hide_wednesday = $w_show_week_days[3] == 'yes' ? '' : ' && day != 3';
$w_hide_thursday = $w_show_week_days[4] == 'yes' ? '' : ' && day != 4';
$w_hide_friday = $w_show_week_days[5] == 'yes' ? '' : ' && day != 5';
$w_hide_saturday = $w_show_week_days[6] == 'yes' ? '' : '&& day != 6';
if ( $required ) {
array_push($req_fields, $id1);
}
$onload_js .= '
jQuery("#button_calendar_' . $id1 . ', #fm-calendar-' . $id1 . '").click(function() {
jQuery("#wdform_' . $id1 . '_element' . $form_id . '").datepicker("show");
});
jQuery("#wdform_' . $id1 . '_element' . $form_id . '").datepicker({
dateFormat: format_date,
minDate: "' . $param['w_min_date'] . '",
maxDate: "' . $param['w_max_date'] . '",
changeMonth: true,
changeYear: true,
yearRange: "-100:+50",
showOtherMonths: true,
selectOtherMonths: true,
firstDay: "' . $param['w_start_day'] . '",
beforeShow: function(input, inst) {
jQuery("#ui-datepicker-div").addClass("fm_datepicker");
},
beforeShowDay: function(date) {
var invalid_dates = "' . $param["w_invalid_dates"] . '";
var invalid_dates_finish = [];
var invalid_dates_start = invalid_dates.split(",");
var invalid_date_range =[];
for(var i = 0; i < invalid_dates_start.length; i++ ) {
invalid_dates_start[i] = invalid_dates_start[i].trim();
if(invalid_dates_start[i].length < 11 || invalid_dates_start[i].indexOf("-") == -1){
invalid_dates_finish.push(invalid_dates_start[i]);
}
else{
if(invalid_dates_start[i].indexOf("-") > 4) {
invalid_date_range.push(invalid_dates_start[i].split("-"));
}
else {
var invalid_date_array = invalid_dates_start[i].split("-");
var start_invalid_day = invalid_date_array[0] + "-" + invalid_date_array[1] + "-" + invalid_date_array[2];
var end_invalid_day = invalid_date_array[3] + "-" + invalid_date_array[4] + "-" + invalid_date_array[5];
invalid_date_range.push([start_invalid_day, end_invalid_day]);
}
}
}
jQuery.each(invalid_date_range, function( index, value ) {
for(var d = new Date(value[0]); d <= new Date(value[1]); d.setDate(d.getDate() + 1)) {
invalid_dates_finish.push(jQuery.datepicker.formatDate(format_date, d));
}
});
var string_days = jQuery.datepicker.formatDate(format_date, date);
var day = date.getDay();
return [ invalid_dates_finish.indexOf(string_days) == -1 ' . $w_hide_sunday . $w_hide_monday . $w_hide_tuesday . $w_hide_wednesday . $w_hide_thursday . $w_hide_friday . $w_hide_saturday . '];
}
});
var default_date;
var date_value = jQuery("#wdform_' . $id1 . '_element' . $form_id . '").val();
(date_value != "") ? default_date = date_value : default_date = "' . $default_date . '";
var format_date = "' . $param['w_format'] . '";
jQuery("#wdform_' . $id1 . '_element' . $form_id . '").datepicker("option", "dateFormat", format_date);
if(default_date == "today") {
jQuery("#wdform_' . $id1 . '_element' . $form_id . '").datepicker("setDate", new Date());
}
else if (default_date.indexOf("d") == -1 && default_date.indexOf("m") == -1 && default_date.indexOf("y") == -1 && default_date.indexOf("w") == -1) {
jQuery("#wdform_' . $id1 . '_element' . $form_id . '").datepicker("setDate", default_date);
}
else {
jQuery("#wdform_' . $id1 . '_element' . $form_id . '").datepicker("setDate", default_date);
}';
break;
}
case 'type_date_range': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_date',
'w_required',
'w_show_image',
'w_class',
'w_format',
'w_start_day',
'w_default_date_start',
'w_default_date_end',
'w_min_date',
'w_max_date',
'w_invalid_dates',
'w_show_days',
'w_hide_time',
'w_but_val',
'w_disable_past_days',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_size',
'w_date',
'w_required',
'w_show_image',
'w_class',
'w_format',
'w_start_day',
'w_default_date_start',
'w_default_date_end',
'w_min_date',
'w_max_date',
'w_invalid_dates',
'w_show_days',
'w_hide_time',
'w_but_val',
'w_disable_past_days',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $param['w_default_date_start'] == 'today' ) {
$default_date_start = 'new Date()';
}
else {
$default_date_start = $param['w_default_date_start'];
}
$w_show_week_days = explode('***', $param['w_show_days']);
$w_hide_sunday = $w_show_week_days[0] == 'yes' ? '' : ' && day != 0';
$w_hide_monday = $w_show_week_days[1] == 'yes' ? '' : ' && day != 1';
$w_hide_tuesday = $w_show_week_days[2] == 'yes' ? '' : ' && day != 2';
$w_hide_wednesday = $w_show_week_days[3] == 'yes' ? '' : ' && day != 3';
$w_hide_thursday = $w_show_week_days[4] == 'yes' ? '' : ' && day != 4';
$w_hide_friday = $w_show_week_days[5] == 'yes' ? '' : ' && day != 5';
$w_hide_saturday = $w_show_week_days[6] == 'yes' ? '' : '&& day != 6';
if ( $required ) {
array_push($req_fields, $id1);
}
$onload_js .= '
jQuery("#button_calendar_' . $id1 . '0").click(function() {
jQuery("#wdform_' . $id1 . '_element' . $form_id . '0").datepicker("show");
});
jQuery("#button_calendar_' . $id1 . '1").click(function() {
jQuery("#wdform_' . $id1 . '_element' . $form_id . '1").datepicker("show");
});
jQuery("input[id^=\'wdform_' . $id1 . '_element' . $form_id . '\']").datepicker({
dateFormat: "mm/dd/yy",
minDate: "' . $param['w_min_date'] . '",
maxDate: "' . $param['w_max_date'] . '",
changeMonth: true,
changeYear: true,
yearRange: "-100:+50",
showOtherMonths: true,
selectOtherMonths: true,
firstDay: "' . $param['w_start_day'] . '",
beforeShow: function(input, inst) {
jQuery("#ui-datepicker-div").addClass("fm_datepicker");
},
beforeShowDay: function(date){
var invalid_dates = "' . $param["w_invalid_dates"] . '";
var invalid_dates_finish = [];
var invalid_dates_start = invalid_dates.split(",");
var invalid_date_range =[];
for(var i = 0; i < invalid_dates_start.length; i++ ){
invalid_dates_start[i] = invalid_dates_start[i].trim();
if(invalid_dates_start[i].length < 11 || invalid_dates_start[i].indexOf("-") == -1) {
invalid_dates_finish.push(invalid_dates_start[i]);
}
else {
if(invalid_dates_start[i].indexOf("-") > 4) {
invalid_date_range.push(invalid_dates_start[i].split("-"));
}
else {
var invalid_date_array = invalid_dates_start[i].split("-");
var start_invalid_day = invalid_date_array[0] + "-" + invalid_date_array[1] + "-" + invalid_date_array[2];
var end_invalid_day = invalid_date_array[3] + "-" + invalid_date_array[4] + "-" + invalid_date_array[5];
invalid_date_range.push([start_invalid_day, end_invalid_day]);
}
}
}
jQuery.each(invalid_date_range, function( index, value ) {
for(var d = new Date(value[0]); d <= new Date(value[1]); d.setDate(d.getDate() + 1)) {
invalid_dates_finish.push(jQuery.datepicker.formatDate("mm/dd/yy", d));
}
});
var string_days = jQuery.datepicker.formatDate("mm/dd/yy", date);
var day = date.getDay();
return [ invalid_dates_finish.indexOf(string_days) == -1 ' . $w_hide_sunday . $w_hide_monday . $w_hide_tuesday . $w_hide_wednesday . $w_hide_thursday . $w_hide_friday . $w_hide_saturday . '];
}
});
var default_date_start;
var date_start_value = jQuery("#wdform_' . $id1 . '_element' . $form_id . '0").val();
(date_start_value != "") ? default_date_start = date_start_value : default_date_start = "' . $param['w_default_date_start'] . '";
var format_date = "' . $param['w_format'] . '";
jQuery("#wdform_' . $id1 . '_element' . $form_id . '").datepicker("option", "dateFormat", format_date);
if(default_date_start =="today") {
jQuery("#wdform_' . $id1 . '_element' . $form_id . '0").datepicker("setDate", new Date());
jQuery("#wdform_' . $id1 . '_element' . $form_id . '1").datepicker("option", "minDate", new Date());
}
else if(default_date_start.indexOf("d") == -1 && default_date_start.indexOf("m") == -1 && default_date_start.indexOf("y") == -1 && default_date_start.indexOf("w") == -1) {
if(default_date_start !== "") {
default_date_start = jQuery.datepicker.formatDate(format_date, new Date(default_date_start));
jQuery("#wdform_' . $id1 . '_element' . $form_id . '0").datepicker("setDate", default_date_start);
jQuery("#wdform_' . $id1 . '_element' . $form_id . '1").datepicker("option", "minDate", default_date_start);
}
else {
jQuery("#wdform_' . $id1 . '_element' . $form_id . '0").datepicker("setDate", default_date_start);
}
}
else {
jQuery("#wdform_' . $id1 . '_element' . $form_id . '0").datepicker("setDate", default_date_start);
jQuery("#wdform_' . $id1 . '_element' . $form_id . '1").datepicker("option", "minDate", default_date_start);
}
var default_date_end;
var date_end_value = jQuery("#wdform_' . $id1 . '_element' . $form_id . '1").val();
(date_end_value != "") ? default_date_end = date_end_value : default_date_end = "' . $param['w_default_date_end'] . '";
var format_date = "' . $param['w_format'] . '";
jQuery("#wdform_' . $id1 . '_element' . $form_id . '0").datepicker("option", "dateFormat", format_date);
jQuery("#wdform_' . $id1 . '_element' . $form_id . '1").datepicker("option", "dateFormat", format_date);
if(default_date_end =="today") {
jQuery("#wdform_' . $id1 . '_element' . $form_id . '1").datepicker("setDate", new Date());
jQuery("#wdform_' . $id1 . '_element' . $form_id . '0").datepicker("option", "maxDate", new Date());
}
else if(default_date_end.indexOf("d") == -1 && default_date_end.indexOf("m") == -1 && default_date_end.indexOf("y") == -1 && default_date_end.indexOf("w") == -1) {
if(default_date_end !== "") {
default_date_end = jQuery.datepicker.formatDate(format_date, new Date(default_date_end));
jQuery("#wdform_' . $id1 . '_element' . $form_id . '1").datepicker("setDate", default_date_end);
jQuery("#wdform_' . $id1 . '_element' . $form_id . '0").datepicker("option", "maxDate", default_date_end);
}
else {
jQuery("#wdform_' . $id1 . '_element' . $form_id . '1").datepicker("setDate", default_date_end);
}
}
else {
jQuery("#wdform_' . $id1 . '_element' . $form_id . '1").datepicker("setDate", default_date_end);
jQuery("#wdform_' . $id1 . '_element' . $form_id . '0").datepicker("option", "maxDate", default_date_end);
}';
break;
}
case 'type_date_fields': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_day',
'w_month',
'w_year',
'w_day_type',
'w_month_type',
'w_year_type',
'w_day_label',
'w_month_label',
'w_year_label',
'w_day_size',
'w_month_size',
'w_year_size',
'w_required',
'w_class',
'w_from',
'w_to',
'w_divider',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_day',
'w_month',
'w_year',
'w_day_type',
'w_month_type',
'w_year_type',
'w_day_label',
'w_month_label',
'w_year_label',
'w_day_size',
'w_month_size',
'w_year_size',
'w_required',
'w_class',
'w_from',
'w_to',
'w_divider',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $param['w_day_type'] != "SELECT" ) {
$w_day_type = '<input type="text" value="' . $param['w_day'] . '" id="wdform_' . $id1 . '_day' . $form_id . '" name="wdform_' . $id1 . '_day' . $form_id . '" style="width: ' . $param['w_day_size'] . 'px;" ' . $param['attributes'] . '>';
$onload_js .= '
jQuery("#wdform_' . $id1 . '_day' . $form_id . '").blur(function() {if (jQuery(this).val() == "0") jQuery(this).val(""); else add_0(this)});';
}
if ( $param['w_month_type'] != "SELECT" ) {
$onload_js .= '
jQuery("#wdform_' . $id1 . '_month' . $form_id . '").blur(function() {if (jQuery(this).val() == "0") jQuery(this).val(""); else add_0(this)});';
}
if ( $required ) {
array_push($req_fields, $id1);
}
break;
}
case 'type_file_upload': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_destination',
'w_extension',
'w_max_size',
'w_required',
'w_multiple',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_destination',
'w_extension',
'w_max_size',
'w_required',
'w_multiple',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
if ( isset($temp[1]) ) {
$temp = $temp[1];
}
else {
$temp = '';
}
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $required ) {
array_push($req_fields, $id1);
}
$file_upload_check[$id1] = $param['w_extension'];
if ( WDFMInstance(self::PLUGIN)->is_demo ) {
$onsubmit_js .= 'alert( "You can\'t upload file in demo.");';
}
break;
}
case 'type_captcha': {
$params_names = array( 'w_field_label_size', 'w_field_label_pos', 'w_digit', 'w_class' );
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array( 'w_field_label_size', 'w_field_label_pos', 'w_hide_label', 'w_digit', 'w_class' );
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$onload_js .= '
jQuery("#wd_captcha' . $form_id . '").click(function() {captcha_refresh("wd_captcha","' . $form_id . '")});';
$onload_js .= '
jQuery("#_element_refresh' . $form_id . '").click(function() {captcha_refresh("wd_captcha","' . $form_id . '")});';
array_push($req_fields, $id1);
$onload_js .= '
captcha_refresh("wd_captcha", "' . $form_id . '");';
break;
}
case 'type_arithmetic_captcha': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_count',
'w_operations',
'w_class',
'w_input_size',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_count',
'w_operations',
'w_class',
'w_input_size',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$onload_js .= '
jQuery("#wd_arithmetic_captcha' . $form_id . '").click(function() { captcha_refresh("wd_arithmetic_captcha","' . $form_id . '") });';
$onload_js .= '
jQuery("#_element_refresh' . $form_id . '").click(function() {captcha_refresh("wd_arithmetic_captcha","' . $form_id . '")});';
array_push($req_fields, $id1);
$onload_js .= '
captcha_refresh("wd_arithmetic_captcha", "' . $form_id . '");';
break;
}
case 'type_mark_map': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_center_x',
'w_center_y',
'w_long',
'w_lat',
'w_zoom',
'w_width',
'w_height',
'w_info',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_center_x',
'w_center_y',
'w_long',
'w_lat',
'w_zoom',
'w_width',
'w_height',
'w_info',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$onload_js .= '
if_gmap_init("wdform_' . $id1 . '", ' . $form_id . ');';
$onload_js .= '
add_marker_on_map("wdform_' . $id1 . '", 0, "' . $param['w_long'] . '", "' . $param['w_lat'] . '", "' . str_replace(array(
"\r\n",
"\n",
"\r",
), '<br />', $param['w_info']) . '", ' . $form_id . ',true);';
break;
}
case 'type_map': {
$params_names = array(
'w_center_x',
'w_center_y',
'w_long',
'w_lat',
'w_zoom',
'w_width',
'w_height',
'w_info',
'w_class',
);
$temp = $params;
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$param['w_long'] = explode('***', $param['w_long']);
$param['w_lat'] = explode('***', $param['w_lat']);
$param['w_info'] = explode('***', $param['w_info']);
foreach ( $param['w_long'] as $key => $w_long ) {
$onload_js .= '
add_marker_on_map("wdform_' . $id1 . '",' . $key . ', "' . $w_long . '", "' . $param['w_lat'][$key] . '", "' . str_replace(array(
"\r\n",
"\n",
"\r",
), '<br />', $param['w_info'][$key]) . '", ' . $form_id . ',false);';
}
break;
}
case 'type_paypal_price': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_first_val',
'w_title',
'w_mini_labels',
'w_size',
'w_required',
'w_hide_cents',
'w_class',
'w_range_min',
'w_range_max',
);
$temp = $params;
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
$onload_js .= '
jQuery("#wdform_' . $id1 . '_element_cents' . $form_id . '").blur(function() {add_0(this)});';
$onload_js .= '
jQuery("#wdform_' . $id1 . '_element_cents' . $form_id . '").keypress(function(event) {return check_isnum_interval(event,this,0,99)});';
if ( $required ) {
$check_js .= '
if(x.find(jQuery("div[wdid=' . $id1 . ']")).length != 0 && x.find(jQuery("div[wdid=' . $id1 . ']")).css("display") != "none") {
if(jQuery("#wdform_' . $id1 . '_element_dollars' . $form_id . '").val() == "' . $w_title[0] . '" || jQuery("#wdform_' . $id1 . '_element_dollars' . $form_id . '").val() == "") {
alert("' . addslashes($label . ' ' . __('field is required.', WDFMInstance(self::PLUGIN)->prefix)) . '");
old_bg=x.find(jQuery("div[wdid=' . $id1 . ']")).css("background-color");
x.find(jQuery("div[wdid=' . $id1 . ']")).effect( "shake", {}, 500 ).css("background-color","#FF8F8B").animate({backgroundColor: old_bg}, {duration: 500, queue: false });
jQuery("#wdform_' . $id1 . '_element_dollars' . $form_id . '").focus();
return false;
}
}';
}
$check_js .= '
if(x.find(jQuery("div[wdid=' . $id1 . ']")).length != 0 && x.find(jQuery("div[wdid=' . $id1 . ']")).css("display") != "none") {
dollars=0;
cents=0;
if(jQuery("#wdform_' . $id1 . '_element_dollars' . $form_id . '").val() != "' . $w_title[0] . '" || jQuery("#wdform_' . $id1 . '_element_dollars' . $form_id . '").val()) {
dollars =jQuery("#wdform_' . $id1 . '_element_dollars' . $form_id . '").val();
}
if(jQuery("#wdform_' . $id1 . '_element_cents' . $form_id . '").val() != "' . $w_title[1] . '" || jQuery("#wdform_' . $id1 . '_element_cents' . $form_id . '").val()) {
cents =jQuery("#wdform_' . $id1 . '_element_cents' . $form_id . '").val();
}
var price=dollars+"."+cents;
if(isNaN(price)) {
alert("Invalid value of number field");
old_bg=x.find(jQuery("div[wdid=' . $id1 . ']")).css("background-color");
x.find(jQuery("div[wdid=' . $id1 . ']")).effect( "shake", {}, 500 ).css("background-color","#FF8F8B").animate({backgroundColor: old_bg}, {duration: 500, queue: false });
jQuery("#wdform_' . $id1 . '_element_dollars' . $form_id . '").focus();
return false;
}
var range_min=' . ($param['w_range_min'] ? $param['w_range_min'] : 0) . ';
var range_max=' . ($param['w_range_max'] ? $param['w_range_max'] : -1) . ';
if(' . ($required ? 'true' : 'false') . ' || jQuery("#wdform_' . $id1 . '_element_dollars' . $form_id . '").val() != "' . $w_title[0] . '" || jQuery("#wdform_' . $id1 . '_element_cents' . $form_id . '").val() != "' . $w_title[1] . '") {
if((range_max!=-1 && parseFloat(price)>range_max) || parseFloat(price)<range_min) {
alert("' . addslashes((__('The', WDFMInstance(self::PLUGIN)->prefix)) . $label . (__('value must be between', WDFMInstance(self::PLUGIN)->prefix)) . ($param['w_range_min'] ? $param['w_range_min'] : 0) . '-' . ($param['w_range_max'] ? $param['w_range_max'] : "any")) . '");
old_bg=x.find(jQuery("div[wdid=' . $id1 . ']")).css("background-color");
x.find(jQuery("div[wdid=' . $id1 . ']")).effect( "shake", {}, 500 ).css("background-color","#FF8F8B").animate({backgroundColor: old_bg}, {duration: 500, queue: false });
jQuery("#wdform_' . $id1 . '_element_dollars' . $form_id . '").focus();
return false;
}
}
}';
break;
}
case 'type_paypal_price_new': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_first_val',
'w_title',
'w_size',
'w_required',
'w_class',
'w_range_min',
'w_range_max',
'w_readonly',
'w_currency',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_first_val',
'w_title',
'w_size',
'w_required',
'w_class',
'w_range_min',
'w_range_max',
'w_readonly',
'w_currency',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $required ) {
array_push($req_fields, $id1);
}
$check_paypal_price_min_max[$id1] = array(
$label,
$param['w_title'],
$required,
$param['w_range_min'],
$param['w_range_max'],
);
break;
}
case 'type_paypal_select': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_choices',
'w_choices_price',
'w_choices_checked',
'w_choices_disabled',
'w_required',
'w_quantity',
'w_quantity_value',
'w_class',
'w_property',
'w_property_values',
);
$temp = $params;
if ( strpos($temp, 'w_choices_params') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_size',
'w_choices',
'w_choices_price',
'w_choices_checked',
'w_choices_disabled',
'w_required',
'w_quantity',
'w_quantity_value',
'w_choices_params',
'w_class',
'w_property',
'w_property_values',
);
}
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_size',
'w_choices',
'w_choices_price',
'w_choices_checked',
'w_choices_disabled',
'w_required',
'w_quantity',
'w_quantity_value',
'w_choices_params',
'w_class',
'w_property',
'w_property_values',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
if ( isset($param['w_choices_params']) ) {
$w_choices_params = explode('***', $param['w_choices_params']);
foreach ( $w_choices_params as $choices ) {
if ( !empty($choices) ) {
preg_match_all('/{\d+}/', $choices, $matches);
if ( !empty($matches[0][0]) ) {
$inputIds[$id_type][] = str_replace( array('{','}'), array('',''), $matches[0][0] );
}
}
}
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
$param['w_property'] = explode('***', $param['w_property']);
if ( $required ) {
array_push($req_fields, $id1);
}
$onsubmit_js .= 'jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_element_label' . $form_id . '\" />").val(jQuery("#wdform_' . $id1 . '_element' . $form_id . ' option:selected").text()).appendTo("#form' . $form_id . '");';
$onsubmit_js .= 'jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_element_quantity_label' . $form_id . '\" />").val("' . (__("Quantity", WDFMInstance(self::PLUGIN)->prefix)) . '").appendTo("#form' . $form_id . '");';
foreach ( $param['w_property'] as $key => $property ) {
$onsubmit_js .= 'jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_element_property_label' . $form_id . $key . '\" />").val("' . $property . '").appendTo("#form' . $form_id . '");';
}
break;
}
case 'type_paypal_checkbox': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_flow',
'w_choices',
'w_choices_price',
'w_choices_checked',
'w_required',
'w_randomize',
'w_allow_other',
'w_allow_other_num',
'w_class',
'w_property',
'w_property_values',
'w_quantity',
'w_quantity_value',
);
$temp = $params;
if ( strpos($temp, 'w_field_option_pos') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_field_option_pos',
'w_flow',
'w_choices',
'w_choices_price',
'w_choices_checked',
'w_required',
'w_randomize',
'w_allow_other',
'w_allow_other_num',
'w_choices_params',
'w_class',
'w_property',
'w_property_values',
'w_quantity',
'w_quantity_value',
);
}
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_field_option_pos',
'w_hide_label',
'w_flow',
'w_choices',
'w_choices_price',
'w_choices_checked',
'w_required',
'w_randomize',
'w_allow_other',
'w_allow_other_num',
'w_choices_params',
'w_class',
'w_property',
'w_property_values',
'w_quantity',
'w_quantity_value',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
$param['w_property'] = explode('***', $param['w_property']);
if ( $required ) {
array_push($req_fields, $id1);
}
$onsubmit_js .= 'jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_element_label' . $form_id . '\" />").val((jQuery("#wdform_' . $id1 . '_element' . $form_id . ' input:checked").length != 0) ? jQuery("#wdform_' . $id1 . '_element' . $form_id . ' input:checked").attr("id").replace("element", "elementlabel_") : "").appendTo("#form' . $form_id . '");';
$onsubmit_js .= 'jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_element_quantity_label' . $form_id . '\" />").val("' . (__("Quantity", WDFMInstance(self::PLUGIN)->prefix)) . '").appendTo("#form' . $form_id . '");';
foreach ( $param['w_property'] as $key => $property ) {
$onsubmit_js .= 'jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_element_property_label' . $form_id . $key . '\" />").val("' . $property . '").appendTo("#form' . $form_id . '");';
}
break;
}
case 'type_paypal_radio': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_flow',
'w_choices',
'w_choices_price',
'w_choices_checked',
'w_required',
'w_randomize',
'w_allow_other',
'w_allow_other_num',
'w_class',
'w_property',
'w_property_values',
'w_quantity',
'w_quantity_value',
);
$temp = $params;
if ( strpos($temp, 'w_field_option_pos') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_field_option_pos',
'w_flow',
'w_choices',
'w_choices_price',
'w_choices_checked',
'w_required',
'w_randomize',
'w_allow_other',
'w_allow_other_num',
'w_choices_params',
'w_class',
'w_property',
'w_property_values',
'w_quantity',
'w_quantity_value',
);
}
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_field_option_pos',
'w_hide_label',
'w_flow',
'w_choices',
'w_choices_price',
'w_choices_checked',
'w_required',
'w_randomize',
'w_allow_other',
'w_allow_other_num',
'w_choices_params',
'w_class',
'w_property',
'w_property_values',
'w_quantity',
'w_quantity_value',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
$param['w_property'] = explode('***', $param['w_property']);
if ( $required ) {
array_push($req_fields, $id1);
}
$onsubmit_js .= 'jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_element_label' . $form_id . '\" />").val(jQuery("label[for=\'"+jQuery("input[name^=\'wdform_' . $id1 . '_element' . $form_id . '\']:checked").attr("id")+"\']").eq(0).text()).appendTo("#form' . $form_id . '");';
$onsubmit_js .= 'jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_element_quantity_label' . $form_id . '\" />").val("' . (__("Quantity", WDFMInstance(self::PLUGIN)->prefix)) . '").appendTo("#form' . $form_id . '");';
foreach ( $param['w_property'] as $key => $property ) {
$onsubmit_js .= 'jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_element_property_label' . $form_id . $key . '\" />").val("' . $property . '").appendTo("#form' . $form_id . '");';
}
break;
}
case 'type_paypal_shipping': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_flow',
'w_choices',
'w_choices_price',
'w_choices_checked',
'w_required',
'w_randomize',
'w_allow_other',
'w_allow_other_num',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_field_option_pos') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_field_option_pos',
'w_flow',
'w_choices',
'w_choices_price',
'w_choices_checked',
'w_required',
'w_randomize',
'w_allow_other',
'w_allow_other_num',
'w_choices_params',
'w_class',
);
}
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_field_option_pos',
'w_hide_label',
'w_flow',
'w_choices',
'w_choices_price',
'w_choices_checked',
'w_required',
'w_randomize',
'w_allow_other',
'w_allow_other_num',
'w_choices_params',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $required ) {
array_push($req_fields, $id1);
}
$onsubmit_js .= '
jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_element_label' . $form_id . '\" />").val(jQuery("label[for=\'"+jQuery("input[name^=\'wdform_' . $id1 . '_element' . $form_id . '\']:checked").attr("id")+"\']").eq(0).text()).appendTo("#form' . $form_id . '");';
break;
}
case 'type_star_rating': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_field_label_col',
'w_star_amount',
'w_required',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_field_label_col',
'w_star_amount',
'w_required',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
for ( $i = 0; $i < $param['w_star_amount']; $i++ ) {
$onload_js .= '
jQuery("#wdform_' . $id1 . '_star_' . $i . '_' . $form_id . '").mouseover(function() {change_src(' . $i . ',"wdform_' . $id1 . '", ' . $form_id . ', "' . $param['w_field_label_col'] . '");});';
$onload_js .= '
jQuery("#wdform_' . $id1 . '_star_' . $i . '_' . $form_id . '").mouseout(function() {reset_src(' . $i . ',"wdform_' . $id1 . '", ' . $form_id . ');});';
$onload_js .= '
jQuery("#wdform_' . $id1 . '_star_' . $i . '_' . $form_id . '").click(function() {select_star_rating(' . $i . ',"wdform_' . $id1 . '", ' . $form_id . ',"' . $param['w_field_label_col'] . '", "' . $param['w_star_amount'] . '");});';
}
if ( $required ) {
array_push($req_fields, $id1);
}
$post = isset($_POST['wdform_' . $id1 . '_selected_star_amount' . $form_id]) ? esc_html(stripslashes($_POST['wdform_' . $id1 . '_selected_star_amount' . $form_id])) : NULL;
if ( isset($post) ) {
$onload_js .= '
select_star_rating(' . ($post - 1) . ',"wdform_' . $id1 . '", ' . $form_id . ',"' . $param['w_field_label_col'] . '", "' . $param['w_star_amount'] . '");';
}
$onsubmit_js .= '
jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_star_amount' . $form_id . '\" value=\"' . $param['w_star_amount'] . '\" />").appendTo("#form' . $form_id . '");';
break;
}
case 'type_scale_rating': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_mini_labels',
'w_scale_amount',
'w_required',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_mini_labels',
'w_scale_amount',
'w_required',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
if ( $required ) {
array_push($req_fields, $id1);
}
$onsubmit_js .= '
jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_scale_amount' . $form_id . '\" value=\"' . $param['w_scale_amount'] . '\" />").appendTo("#form' . $form_id . '");';
break;
}
case 'type_spinner': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_field_width',
'w_field_min_value',
'w_field_max_value',
'w_field_step',
'w_field_value',
'w_required',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_field_width',
'w_field_min_value',
'w_field_max_value',
'w_field_step',
'w_field_value',
'w_required',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
$onload_js .= '
jQuery("#form' . $form_id . ' #wdform_' . $id1 . '_element' . $form_id . '")[0].spin = null;
spinner = jQuery("#form' . $form_id . ' #wdform_' . $id1 . '_element' . $form_id . '").spinner();
if ("' . $param['w_field_value'] . '" == "null" && jQuery("#form' . $form_id . ' #wdform_' . $id1 . '_element' . $form_id . '").val() == "") { spinner.spinner("value", ""); }
jQuery("#form' . $form_id . ' #wdform_' . $id1 . '_element' . $form_id . '").spinner({ min: "' . $param['w_field_min_value'] . '"});
jQuery("#form' . $form_id . ' #wdform_' . $id1 . '_element' . $form_id . '").spinner({ max: "' . $param['w_field_max_value'] . '"});
jQuery("#form' . $form_id . ' #wdform_' . $id1 . '_element' . $form_id . '").spinner({ step: "' . $param['w_field_step'] . '"});';
if ( $required ) {
array_push($req_fields, $id1);
}
$spinner_check[$id1] = array( $param['w_field_min_value'], $param['w_field_max_value'] );
break;
}
case 'type_slider': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_field_width',
'w_field_min_value',
'w_field_max_value',
'w_field_value',
'w_required',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_field_width',
'w_field_min_value',
'w_field_max_value',
'w_field_value',
'w_required',
'w_class',
);
}
if ( strpos($temp, 'w_field_step') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_field_width',
'w_field_min_value',
'w_field_max_value',
'w_field_step',
'w_field_value',
'w_required',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
$onload_js .= '
jQuery("#wdform_' . $id1 . '_element' . $form_id . '")[0].slide = null;
jQuery("#wdform_' . $id1 . '_element' . $form_id . '").slider({
step: parseInt(' . $param['w_field_step'] . '),
range: "min",
value: eval(' . $param['w_field_value'] . '),
min: eval(' . $param['w_field_min_value'] . '),
max: eval(' . $param['w_field_max_value'] . '),
slide: function( event, ui ) {
jQuery("#wdform_' . $id1 . '_element_value' . $form_id . '").html("" + ui.value);
jQuery("#wdform_' . $id1 . '_slider_value' . $form_id . '").val("" + ui.value);
}
});';
if ( $required ) {
array_push($req_fields, $id1);
}
break;
}
case 'type_range': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_field_range_width',
'w_field_range_step',
'w_field_value1',
'w_field_value2',
'w_mini_labels',
'w_required',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_field_range_width',
'w_field_range_step',
'w_field_value1',
'w_field_value2',
'w_mini_labels',
'w_required',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
$onload_js .= '
jQuery("#form' . $form_id . ' #wdform_' . $id1 . '_element' . $form_id . '0")[0].spin = null;
jQuery("#form' . $form_id . ' #wdform_' . $id1 . '_element' . $form_id . '1")[0].spin = null;
spinner0 = jQuery("#form' . $form_id . ' #wdform_' . $id1 . '_element' . $form_id . '0").spinner();
if ("' . $param['w_field_value1'] . '" == "null" && jQuery("#form' . $form_id . ' #wdform_' . $id1 . '_element' . $form_id . '0").val() == "") { spinner0.spinner("value", ""); }
jQuery("#form' . $form_id . ' #wdform_' . $id1 . '_element' . $form_id . '").spinner({ step: ' . $param['w_field_range_step'] . '});
spinner1 = jQuery("#form' . $form_id . ' #wdform_' . $id1 . '_element' . $form_id . '1").spinner();
if ("' . $param['w_field_value2'] . '" == "null" && jQuery("#form' . $form_id . ' #wdform_' . $id1 . '_element' . $form_id . '1").val() == "") { spinner1.spinner("value", ""); }
jQuery("#form' . $form_id . ' #wdform_' . $id1 . '_element' . $form_id . '").spinner({ step: ' . $param['w_field_range_step'] . '});';
if ( $required ) {
array_push($req_fields, $id1);
}
break;
}
case 'type_grading': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_items',
'w_total',
'w_required',
'w_class',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_items',
'w_total',
'w_required',
'w_class',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
$w_items = explode('***', $param['w_items']);
$w_items_labels = implode(':', $w_items);
$onload_js .= '
jQuery("#wdform_' . $id1 . '_element' . $form_id . ' input").change(function() {sum_grading_values("wdform_' . $id1 . '",' . $form_id . ');});';
$onload_js .= '
jQuery("#wdform_' . $id1 . '_element' . $form_id . ' input").keyup(function() {sum_grading_values("wdform_' . $id1 . '",' . $form_id . ');});';
$onload_js .= '
jQuery("#wdform_' . $id1 . '_element' . $form_id . ' input").keyup(function() {sum_grading_values("wdform_' . $id1 . '",' . $form_id . ');});';
$onload_js .= '
sum_grading_values("wdform_' . $id1 . '",' . $form_id . ');';
if ( $required ) {
array_push($req_fields, $id1);
}
if ($param['w_total'] != '' && $param['w_total'] != '0') {
$check_js .= '
var isAllowdedSubmit = true;
if(x.find(jQuery("div[wdid=' . $id1 . ']")).length != 0 && x.find(jQuery("div[wdid=' . $id1 . ']")).css("display") != "none") {
if(parseInt(jQuery("#wdform_' . $id1 . '_sum_element' . $form_id . '").html()) > ' . $param['w_total'] . ') {
alert("' . addslashes(__("Your score should be less than", WDFMInstance(self::PLUGIN)->prefix)) . ' ' . $param['w_total'] . '");
return false;
}
}';
}
$onsubmit_js .= '
jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_hidden_item' . $form_id . '\" value=\"' . $w_items_labels . ':' . $param['w_total'] . '\" />").appendTo("#form' . $form_id . '");';
break;
}
case 'type_matrix': {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_field_input_type',
'w_rows',
'w_columns',
'w_required',
'w_class',
'w_textbox_size',
);
$temp = $params;
if ( strpos($temp, 'w_hide_label') > -1 ) {
$params_names = array(
'w_field_label_size',
'w_field_label_pos',
'w_hide_label',
'w_field_input_type',
'w_rows',
'w_columns',
'w_required',
'w_class',
'w_textbox_size',
);
}
foreach ( $params_names as $params_name ) {
$temp = explode('*:*' . $params_name . '*:*', $temp);
$param[$params_name] = $temp[0];
$temp = $temp[1];
}
$required = ($param['w_required'] == "yes" ? TRUE : FALSE);
$onsubmit_js .= 'jQuery("<input type=\"hidden\" name=\"wdform_' . $id1 . '_input_type' . $form_id . '\" value=\"' . $param['w_field_input_type'] . '\" /><input type=\"hidden\" name=\"wdform_' . $id1 . '_hidden_row' . $form_id . '\" value=\"' . esc_html(addslashes($param['w_rows'])) . '\" /><input type=\"hidden\" name=\"wdform_' . $id1 . '_hidden_column' . $form_id . '\" value=\"' . esc_html(addslashes($param['w_columns'])) . '\" />").appendTo("#form' . $form_id . '");';
if ( $required ) {
array_push($req_fields, $id1);
}
break;
}
case 'type_paypal_total': {
$onload_js .= 'set_total_value(' . $form_id . ');';
break;
}
break;
}
}
}
$onsubmit_js .= '
var disabled_fields = "";
jQuery("#form' . $form_id . ' div[wdid]").each(function() {
if(jQuery(this).css("display") == "none") {
disabled_fields += jQuery(this).attr("wdid");
disabled_fields += ",";
}
})
if(disabled_fields) {
jQuery("<input type=\"hidden\" name=\"disabled_fields' . $form_id . '\" value =\""+disabled_fields+"\" />").appendTo("#form' . $form_id . '");
};';
ob_start();
?>
var fm_currentDate = new Date();
var FormCurrency_<?php echo $form_id; ?> = '<?php echo $form_currency ?>';
var FormPaypalTax_<?php echo $form_id; ?> = '<?php echo $form_paypal_tax ?>';
var check_submit<?php echo $form_id; ?> = 0;
var check_before_submit<?php echo $form_id; ?> = {};
var required_fields<?php echo $form_id; ?> = <?php echo json_encode($req_fields) ?>;
var labels_and_ids<?php echo $form_id; ?> = <?php echo json_encode($labels_and_ids) ?>;
var check_regExp_all<?php echo $form_id; ?> = <?php echo json_encode($check_regExp_all) ?>;
var check_paypal_price_min_max<?php echo $form_id; ?> = <?php echo json_encode($check_paypal_price_min_max) ?>;
var file_upload_check<?php echo $form_id; ?> = <?php echo json_encode($file_upload_check) ?>;
var spinner_check<?php echo $form_id; ?> = <?php echo json_encode($spinner_check) ?>;
var scrollbox_trigger_point<?php echo $form_id; ?> = '<?php echo $row_display->scrollbox_trigger_point; ?>';
var header_image_animation<?php echo $form_id; ?> = '<?php echo $row->header_image_animation; ?>';
var scrollbox_loading_delay<?php echo $form_id; ?> = '<?php echo $row_display->scrollbox_loading_delay; ?>';
var scrollbox_auto_hide<?php echo $form_id; ?> = '<?php echo $row_display->scrollbox_auto_hide; ?>';
var inputIds<?php echo $form_id; ?> = '<?php echo json_encode($inputIds); ?>';
<?php
reset($inputIds);
$first_field_id = explode('|', key($inputIds) );
?>
var update_first_field_id<?php echo $form_id; ?> = <?php echo !empty($first_field_id[0]) ? $first_field_id[0] : 0; ?>;
var form_view_count<?php echo $form_id ?> = 0;
<?php echo preg_replace($pattern, ' ', $row->javascript); ?>
function onload_js<?php echo $form_id ?>() {<?php
echo $onload_js; ?>
}
function condition_js<?php echo $form_id ?>() {<?php
echo $condition_js; ?>
}
function check_js<?php echo $form_id ?>(id, form_id) {
if (id != 0) {
x = jQuery("#" + form_id + "form_view"+id);
}
else {
x = jQuery("#form"+form_id);
}
<?php echo $check_js; ?>
}
function onsubmit_js<?php echo $form_id ?>() {
<?php echo $onsubmit_js; ?>
}
function unset_fields<?php echo $form_id ?>( values, id, i ) {
rid = 0;
if ( i > 0 ) {
jQuery.each( values, function( k, v ) {
if ( id == k.split('|')[2] ) {
rid = k.split('|')[0];
values[k] = '';
}
});
return unset_fields<?php echo $form_id ?>(values, rid, i - 1);
} else {
return values;
}
}
function ajax_similarity<?php echo $form_id ?>( obj, changing_field_id ) {
jQuery.ajax({
type: "POST",
url: fm_objectL10n.form_maker_admin_ajax,
dataType: "json",
data: {
nonce: fm_ajax.ajaxnonce,
action: 'fmc_reload_input',
page: 'form_maker',
form_id: <?php echo $form_id ?>,
inputs: obj.inputs
},
beforeSend: function() {
if ( !jQuery.isEmptyObject(obj.inputs) ) {
jQuery.each( obj.inputs, function( key, val ) {
wdid = key.split('|')[0];
if ( val != '' && parseInt(wdid) == parseInt(changing_field_id) ) {
jQuery("#form<?php echo $form_id ?> div[wdid='"+ wdid +"']").append( '<div class="fm-loading"></div>' );
}
});
}
},
success: function (res) {
if ( !jQuery.isEmptyObject(obj.inputs) ) {
jQuery.each( obj.inputs, function( key, val ) {
wdid = key.split('|')[0];
jQuery("#form<?php echo $form_id ?> div[wdid='"+ wdid +"'] .fm-loading").remove();
if ( !jQuery.isEmptyObject(res[wdid]) && ( !val || parseInt(wdid) == parseInt(changing_field_id) ) ) {
jQuery("#form<?php echo $form_id ?> div[wdid='"+ wdid +"']").html( res[wdid].html );
}
});
}
},
complete: function() {
}
});
}
function fm_script_ready<?php echo $form_id ?>() {
if (jQuery('#form<?php echo $form_id ?> .wdform_section').length > 0) {
fm_document_ready( <?php echo $form_id ?> );
}
else {
jQuery("#form<?php echo $form_id ?>").closest(".fm-form-container").removeAttr("style")
}
if (jQuery('#form<?php echo $form_id ?> .wdform_section').length > 0) {
formOnload(<?php echo $form_id ?>);
}
var ajaxObj<?php echo $form_id ?> = {};
var value_ids<?php echo $form_id ?> = {};
jQuery.each( jQuery.parseJSON( inputIds<?php echo $form_id ?> ), function( key, values ) {
jQuery.each( values, function( index, input_id ) {
tagName = jQuery('#form<?php echo $form_id ?> [id^="wdform_'+ input_id +'_elemen"]').prop("tagName");
type = jQuery('#form<?php echo $form_id ?> [id^="wdform_'+ input_id +'_elemen"]').prop("type");
if ( tagName == 'INPUT' ) {
input_value = jQuery('#form<?php echo $form_id ?> [id^="wdform_'+ input_id +'_elemen"]').val();
if ( jQuery('#form<?php echo $form_id ?> [id^="wdform_'+ input_id +'_elemen"]').is(':checked') ) {
if ( input_value ) {
value_ids<?php echo $form_id ?>[key + '|' + input_id] = input_value;
}
}
else if ( type == 'text' ) {
if ( input_value ) {
value_ids<?php echo $form_id ?>[key + '|' + input_id] = input_value;
}
}
}
else if ( tagName == 'SELECT' ) {
select_value = jQuery('#form<?php echo $form_id ?> [id^="wdform_'+ input_id +'_elemen"] option:selected').val();
if ( select_value ) {
value_ids<?php echo $form_id ?>[key + '|' + input_id] = select_value;
}
}
ajaxObj<?php echo $form_id ?>.inputs = value_ids<?php echo $form_id ?>;
jQuery(document).on('change', '#form<?php echo $form_id ?> [id^="wdform_'+ input_id +'_elemen"]', function() {
var id = '';
var changing_field_id = '';
if( jQuery(this).prop("tagName") == 'INPUT' ) {
if( jQuery(this).is(':checked') ) {
id = jQuery(this).val();
}
if( jQuery(this).attr('type') == 'text' ) {
id = jQuery(this).val();
}
}
else {
id = jQuery(this).val();
}
value_ids<?php echo $form_id ?>[key + '|' + input_id] = id;
jQuery.each( value_ids<?php echo $form_id ?>, function( k, v ) {
key_arr = k.split('|');
if ( input_id == key_arr[2] ) {
changing_field_id = key_arr[0];
count = Object.keys(value_ids<?php echo $form_id ?>).length;
value_ids<?php echo $form_id ?> = unset_fields<?php echo $form_id ?>( value_ids<?php echo $form_id ?>, changing_field_id, count );
}
});
ajaxObj<?php echo $form_id ?>.inputs = value_ids<?php echo $form_id ?>;
ajax_similarity<?php echo $form_id ?>( ajaxObj<?php echo $form_id ?>, changing_field_id );
});
});
});
ajax_similarity<?php echo $form_id ?>( ajaxObj<?php echo $form_id ?>, update_first_field_id<?php echo $form_id; ?> );
}
jQuery(document).ready(function () {
fm_script_ready<?php echo $form_id ?>();
});
<?php
$js_content = ob_get_clean();
self::$fm_js_content = $js_content;
fwrite($jsfile, $js_content);
fclose($jsfile);
clearstatcache();
}
/**
* Get submissions to export.
*
* @return array
*/
public static function get_submissions_to_export() {
global $wpdb;
$params = array();
$form_id = (int) $_REQUEST['form_id'];
$limitstart = (int) $_REQUEST['limitstart'];
$page_num = (int) $_REQUEST['page_num'];
$search_labels = isset($_REQUEST['search_labels']) ? $_REQUEST['search_labels'] : '';
$groupids = !empty($_REQUEST['groupids']) ? explode(',', $_REQUEST['groupids']) : '';
$verified_emails = isset($_REQUEST['verified_emails']) ? json_decode(stripslashes($_REQUEST['verified_emails']), TRUE) : array();
$paypal_info_fields = array(
'currency' => 'Currency',
'ord_last_modified' => 'Last modified',
'status' => 'Status',
'full_name' => 'Full Name',
'fax' => 'Fax',
'mobile_phone' => 'Mobile phone',
'email' => 'Email',
'phone' => 'Phone',
'address' => 'Address',
'paypal_info' => 'Paypal info',
'ipn' => 'IPN',
'tax' => 'Tax',
'shipping' => 'Shipping'
);
$query = $wpdb->prepare("SELECT distinct element_label FROM " . $wpdb->prefix . "formmaker_submits where form_id=%d", $form_id);
$labels = $wpdb->get_col($query);
$query_lable = $wpdb->prepare("SELECT label_order,title FROM " . $wpdb->prefix . "formmaker where id=%d", $form_id);
$rows_lable = $wpdb->get_results($query_lable);
$ptn = "/[^a-zA-Z0-9_]/";
$rpltxt = "";
$title = isset($rows_lable[0]) ? preg_replace($ptn, $rpltxt, $rows_lable[0]->title) : '';
$sorted_labels_id = array();
$sorted_labels = array();
$sorted_types = array();
$label_titles = array();
$label_id = array();
$label_order = array();
$label_order_original = array();
$label_type = array();
if ( $labels ) {
$label_all = explode('#****#', $rows_lable[0]->label_order);
$label_all = array_slice($label_all, 0, count($label_all) - 1);
foreach ( $label_all as $key => $label_each ) {
$label_id_each = explode('#**id**#', $label_each);
array_push($label_id, $label_id_each[0]);
$label_oder_each = explode('#**label**#', $label_id_each[1]);
array_push($label_order_original, $label_oder_each[0]);
$label_temp = preg_replace($ptn, $rpltxt, $label_oder_each[0]);
array_push($label_order, $label_temp);
array_push($label_type, $label_oder_each[1]);
}
foreach ( $label_id as $key => $label ) {
if ( in_array($label, $labels) && $label_type[$key] != 'type_arithmetic_captcha'
&& in_array($label, $labels) && $label_type[$key] != 'type_stripe' ) {
array_push($sorted_labels, $label_order[$key]);
array_push($sorted_labels_id, $label);
array_push($label_titles, stripslashes($label_order_original[$key]));
array_push($sorted_types, $label_type[$key]);
}
}
}
$m = count($sorted_labels);
$wpdb->query("SET SESSION group_concat_max_len = 1000000");
$rows = array();
if ( !empty($groupids) ) {
$query = $wpdb->prepare("SELECT `group_id`, `ip`, `date`, `user_id_wd`, GROUP_CONCAT( element_label SEPARATOR ',') AS `element_label`, GROUP_CONCAT( element_value SEPARATOR '*:*el_value*:*') AS `element_value` FROM " . $wpdb->prefix . "formmaker_submits WHERE `form_id` = %d and `group_id` IN(" . implode($groupids,',') . ") GROUP BY `group_id` ORDER BY `date` ASC", $form_id);
$rows = $wpdb->get_results($query, OBJECT_K);
}
$data = array();
$is_paypal_info = FALSE;
for ( $www = 0; $www < count($groupids); $www++ ) {
$i = $groupids[$www];
$field_key = array_search($i, $label_id);
if ( $label_type[$field_key] != 'type_arithmetic_captcha'
&& $label_type[$field_key] != 'type_stripe' ) {
$data_temp = array();
$tt = $rows[$i];
$date = $tt->date;
$ip = $tt->ip;
$user_id = get_userdata($tt->user_id_wd);
$username = $user_id ? $user_id->display_name : "";
$useremail = $user_id ? $user_id->user_email : "";
$data_temp['ID'] = $i;
$data_temp['Submit date'] = $date;
$data_temp['Submitter\'s IP'] = $ip;
$data_temp['Submitter\'s Username'] = $username;
$data_temp['Submitter\'s Email Address'] = $useremail;
$element_labels = explode(',', $tt->element_label);
$element_values = explode('*:*el_value*:*', $tt->element_value);
for ( $h = 0; $h < $m; $h++ ) {
if ( isset($data_temp[$label_titles[$h]]) ) {
$label_titles[$h] .= '(1)';
}
if ( in_array($sorted_labels_id[$h], $element_labels) ) {
$element_value = $element_values[array_search($sorted_labels_id[$h], $element_labels)];
if ( strpos($element_value, "*@@url@@*") ) {
$file_names = '';
$new_files = explode("*@@url@@*", $element_value);
foreach ( $new_files as $new_file ) {
if ( $new_file ) {
$file_names .= $new_file . ", ";
}
}
$data_temp[stripslashes($label_titles[$h])] = $file_names;
}
elseif ( strpos($element_value, "***br***") ) {
$element_value = str_replace("***br***", ', ', $element_value);
if ( strpos($element_value, "***quantity***") ) {
$element_value = str_replace("***quantity***", '', $element_value);
}
if ( strpos($element_value, "***property***") ) {
$element_value = str_replace("***property***", '', $element_value);
}
if ( substr($element_value, -2) == ', ' ) {
$data_temp[stripslashes($label_titles[$h])] = substr($element_value, 0, -2);
}
else {
$data_temp[stripslashes($label_titles[$h])] = $element_value;
}
}
elseif ( strpos($element_value, "***map***") ) {
$data_temp[stripslashes($label_titles[$h])] = 'Longitude:' . str_replace("***map***", ', Latitude:', $element_value);
}
elseif ( strpos($element_value, "***star_rating***") ) {
$element = str_replace("***star_rating***", '', $element_value);
$element = explode("***", $element);
$data_temp[stripslashes($label_titles[$h])] = ' ' . $element[1] . '/' . $element[0];
}
elseif ( strpos($element_value, "@@@") !== FALSE ) {
$data_temp[stripslashes($label_titles[$h])] = str_replace("@@@", ' ', $element_value);
}
elseif ( strpos($element_value, "***grading***") ) {
$element = str_replace("***grading***", '', $element_value);
$grading = explode(":", $element);
$items_count = sizeof($grading) - 1;
$items = "";
$total = "";
for ( $k = 0; $k < $items_count / 2; $k++ ) {
$items .= $grading[$items_count / 2 + $k] . ": " . $grading[$k] . ", ";
$total += $grading[$k];
}
$items .= "Total: " . $total;
$data_temp[stripslashes($label_titles[$h])] = $items;
}
elseif ( strpos($element_value, "***matrix***") ) {
$element = str_replace("***matrix***", '', $element_value);
$matrix_value = explode('***', $element);
$matrix_value = array_slice($matrix_value, 0, count($matrix_value) - 1);
$mat_rows = $matrix_value[0];
$mat_columns = $matrix_value[$mat_rows + 1];
$matrix = "";
$aaa = array();
$var_checkbox = 1;
$selected_value = "";
$selected_value_yes = "";
$selected_value_no = "";
for ( $k = 1; $k <= $mat_rows; $k++ ) {
if ( $matrix_value[$mat_rows + $mat_columns + 2] == "radio" ) {
if ( $matrix_value[$mat_rows + $mat_columns + 2 + $k] == 0 ) {
$checked = "0";
$aaa[1] = "";
}
else {
$aaa = explode("_", $matrix_value[$mat_rows + $mat_columns + 2 + $k]);
}
for ( $l = 1; $l <= $mat_columns; $l++ ) {
$checked = $aaa[1] == $l ? '1' : '0';
$matrix .= '[' . $matrix_value[$k] . ',' . $matrix_value[$mat_rows + 1 + $l] . ']=' . $checked . "; ";
}
}
else {
if ( $matrix_value[$mat_rows + $mat_columns + 2] == "checkbox" ) {
for ( $l = 1; $l <= $mat_columns; $l++ ) {
$checked = $matrix_value[$mat_rows + $mat_columns + 2 + $var_checkbox] == 1 ? '1' : '0';
$matrix .= '[' . $matrix_value[$k] . ',' . $matrix_value[$mat_rows + 1 + $l] . ']=' . $checked . "; ";
$var_checkbox++;
}
}
else {
if ( $matrix_value[$mat_rows + $mat_columns + 2] == "text" ) {
for ( $l = 1; $l <= $mat_columns; $l++ ) {
$text_value = $matrix_value[$mat_rows + $mat_columns + 2 + $var_checkbox];
$matrix .= '[' . $matrix_value[$k] . ',' . $matrix_value[$mat_rows + 1 + $l] . ']=' . $text_value . "; ";
$var_checkbox++;
}
}
else {
for ( $l = 1; $l <= $mat_columns; $l++ ) {
$selected_text = $matrix_value[$mat_rows + $mat_columns + 2 + $var_checkbox];
$matrix .= '[' . $matrix_value[$k] . ',' . $matrix_value[$mat_rows + 1 + $l] . ']=' . $selected_text . "; ";
$var_checkbox++;
}
}
}
}
}
$data_temp[stripslashes($label_titles[$h])] = $matrix;
}
else {
$val = strip_tags(htmlspecialchars_decode($element_value));
$val = stripslashes(str_replace(''', "'", $val));
$data_temp[stripslashes($label_titles[$h])] = $val;
}
}
else {
$data_temp[stripslashes($label_titles[$h])] = '';
}
if ( isset($verified_emails[$sorted_labels_id[$h]]) && $sorted_types[$h] == "type_submitter_mail" ) {
if ( $data_temp[stripslashes($label_titles[$h])] == '' ) {
$data_temp[stripslashes($label_titles[$h]) . '(verified)'] = '';
}
else {
if ( in_array($i, $verified_emails[$sorted_labels_id[$h]]) ) {
$data_temp[stripslashes($label_titles[$h]) . '(verified)'] = 'yes';
}
else {
$data_temp[stripslashes($label_titles[$h]) . '(verified)'] = 'no';
}
}
}
}
$item_total = $wpdb->get_var($wpdb->prepare("SELECT `element_value` FROM " . $wpdb->prefix . "formmaker_submits where group_id=%d AND element_label=%s", $i, 'item_total'));
$total = $wpdb->get_var($wpdb->prepare("SELECT `element_value` FROM " . $wpdb->prefix . "formmaker_submits where group_id=%d AND element_label=%s", $i, 'total'));
$payment_status = $wpdb->get_var($wpdb->prepare("SELECT `element_value` FROM " . $wpdb->prefix . "formmaker_submits where group_id=%d AND element_label=%s", $i, '0'));
if ( $item_total ) {
$data_temp['Item Total'] = $item_total;
}
if ( $total ) {
$data_temp['Total'] = $total;
}
if ( $payment_status ) {
$data_temp['Payment Status'] = $payment_status;
}
$query = $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "formmaker_sessions where group_id=%d", $i);
$paypal_info = $wpdb->get_results($query);
if ( $paypal_info ) {
$is_paypal_info = TRUE;
}
if ( $is_paypal_info ) {
foreach ( $paypal_info_fields as $key => $paypal_info_field ) {
if ( $paypal_info ) {
$data_temp['PAYPAL_' . $paypal_info_field ] = $paypal_info[0]->$key;
}
else {
$data_temp['PAYPAL_' . $paypal_info_field ] = '';
}
}
}
$data[$i] = $data_temp;
}
}
array_push($params, $data);
array_push($params, $title);
array_push($params, $is_paypal_info);
return $params;
}
/**
* No items.
*
* @param $title
*
* @return string
*/
public static function no_items($title) {
$title = ($title != '') ? strtolower($title) : 'items';
ob_start();
?><tr class="no-items">
<td class="colspanchange fm-column-not-hide" colspan="0"><?php echo sprintf(__('No %s found.', WDFMInstance(self::PLUGIN)->prefix), $title); ?></td>
</tr><?php
return ob_get_clean();
}
/**
* Get current page url.
*
* @return string
*/
public static function get_current_page_url() {
global $wp;
return add_query_arg( $_SERVER['QUERY_STRING'], '', home_url( $wp->request ) );
}
/**
* Get all addons.
*
* @return array $addons
*/
public static function get_all_addons_path() {
$addons = array(
'form-maker-export-import/fm_exp_imp.php',
'form-maker-save-progress/fm_save.php',
'form-maker-conditional-emails/fm_conditional_emails.php',
'form-maker-pushover/fm_pushover.php',
'form-maker-mailchimp/fm_mailchimp.php',
'form-maker-reg/fm_reg.php',
'form-maker-post-generation/fm_post_generation.php',
'form-maker-dropbox-integration/fm_dropbox_integration.php',
'form-maker-gdrive-integration/fm_gdrive_integration.php',
'form-maker-pdf-integration/fm_pdf_integration.php',
'form-maker-stripe/fm_stripe.php',
'form-maker-calculator/fm_calculator.php'
);
return $addons;
}
/**
* Deactivate all addons with given additional plugin.
*
* @param bool $additional_plugin
*/
public static function deactivate_all_addons($additional_plugin = FALSE) {
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
$addons = self::get_all_addons_path();
if ( $additional_plugin ) {
array_push($addons, $additional_plugin);
}
foreach ( $addons as $addon ) {
if ( is_plugin_active( $addon ) ) {
deactivate_plugins( $addon, false, false );
}
}
}
/**
* Get countries list.
*
* @return array
*/
public static function get_countries() {
$countries = array(
"" => "",
"Afghanistan" => __("Afghanistan", WDFMInstance(self::PLUGIN)->prefix),
"Albania" => __("Albania", WDFMInstance(self::PLUGIN)->prefix),
"Algeria" => __("Algeria", WDFMInstance(self::PLUGIN)->prefix),
"Andorra" => __("Andorra", WDFMInstance(self::PLUGIN)->prefix),
"Angola" => __("Angola", WDFMInstance(self::PLUGIN)->prefix),
"Antigua and Barbuda" => __("Antigua and Barbuda", WDFMInstance(self::PLUGIN)->prefix),
"Argentina" => __("Argentina", WDFMInstance(self::PLUGIN)->prefix),
"Armenia" => __("Armenia", WDFMInstance(self::PLUGIN)->prefix),
"Australia" => __("Australia", WDFMInstance(self::PLUGIN)->prefix),
"Austria" => __("Austria", WDFMInstance(self::PLUGIN)->prefix),
"Azerbaijan" => __("Azerbaijan", WDFMInstance(self::PLUGIN)->prefix),
"Bahamas" => __("Bahamas", WDFMInstance(self::PLUGIN)->prefix),
"Bahrain" => __("Bahrain", WDFMInstance(self::PLUGIN)->prefix),
"Bangladesh" => __("Bangladesh", WDFMInstance(self::PLUGIN)->prefix),
"Barbados" => __("Barbados", WDFMInstance(self::PLUGIN)->prefix),
"Belarus" => __("Belarus", WDFMInstance(self::PLUGIN)->prefix),
"Belgium" => __("Belgium", WDFMInstance(self::PLUGIN)->prefix),
"Belize" => __("Belize", WDFMInstance(self::PLUGIN)->prefix),
"Benin" => __("Benin", WDFMInstance(self::PLUGIN)->prefix),
"Bhutan" => __("Bhutan", WDFMInstance(self::PLUGIN)->prefix),
"Bolivia" => __("Bolivia", WDFMInstance(self::PLUGIN)->prefix),
"Bosnia and Herzegovina" => __("Bosnia and Herzegovina", WDFMInstance(self::PLUGIN)->prefix),
"Botswana" => __("Botswana", WDFMInstance(self::PLUGIN)->prefix),
"Brazil" => __("Brazil", WDFMInstance(self::PLUGIN)->prefix),
"Brunei" => __("Brunei", WDFMInstance(self::PLUGIN)->prefix),
"Bulgaria" => __("Bulgaria", WDFMInstance(self::PLUGIN)->prefix),
"Burkina" => __("Burkina Faso", WDFMInstance(self::PLUGIN)->prefix),
"Burundi" => __("Burundi", WDFMInstance(self::PLUGIN)->prefix),
"Cambodia" => __("Cambodia", WDFMInstance(self::PLUGIN)->prefix),
"Cameroon" => __("Cameroon", WDFMInstance(self::PLUGIN)->prefix),
"Canada" => __("Canada", WDFMInstance(self::PLUGIN)->prefix),
"Cape Verde" => __("Cape Verde", WDFMInstance(self::PLUGIN)->prefix),
"Central African Republic" => __("Central African Republic", WDFMInstance(self::PLUGIN)->prefix),
"Chad" => __("Chad", WDFMInstance(self::PLUGIN)->prefix),
"Chile" => __("Chile", WDFMInstance(self::PLUGIN)->prefix),
"China" => __("China", WDFMInstance(self::PLUGIN)->prefix),
"Colombia" => __("Colombia", WDFMInstance(self::PLUGIN)->prefix),
"Comoros" => __("Comoros", WDFMInstance(self::PLUGIN)->prefix),
"Congo (Brazzaville)" => __("Congo (Brazzaville)", WDFMInstance(self::PLUGIN)->prefix),
"Congo" => __("Congo", WDFMInstance(self::PLUGIN)->prefix),
"Costa Rica" => __("Costa Rica", WDFMInstance(self::PLUGIN)->prefix),
"Cote d'Ivoire" => __("Cote d'Ivoire", WDFMInstance(self::PLUGIN)->prefix),
"Croatia" => __("Croatia", WDFMInstance(self::PLUGIN)->prefix),
"Cuba" => __("Cuba", WDFMInstance(self::PLUGIN)->prefix),
"Curacao" => __("Curacao", WDFMInstance(self::PLUGIN)->prefix),
"Cyprus" => __("Cyprus", WDFMInstance(self::PLUGIN)->prefix),
"Czech Republic" => __("Czech Republic", WDFMInstance(self::PLUGIN)->prefix),
"Denmark" => __("Denmark", WDFMInstance(self::PLUGIN)->prefix),
"Djibouti" => __("Djibouti", WDFMInstance(self::PLUGIN)->prefix),
"Dominica" => __("Dominica", WDFMInstance(self::PLUGIN)->prefix),
"Dominican Republic" => __("Dominican Republic", WDFMInstance(self::PLUGIN)->prefix),
"East Timor (Timor Timur" => __("East Timor (Timor Timur)", WDFMInstance(self::PLUGIN)->prefix),
"Ecuador" => __("Ecuador", WDFMInstance(self::PLUGIN)->prefix),
"Egypt" => __("Egypt", WDFMInstance(self::PLUGIN)->prefix),
"El Salvador" => __("El Salvador", WDFMInstance(self::PLUGIN)->prefix),
"Equatorial" => __("Equatorial Guinea", WDFMInstance(self::PLUGIN)->prefix),
"Eritrea" => __("Eritrea", WDFMInstance(self::PLUGIN)->prefix),
"Estonia" => __("Estonia", WDFMInstance(self::PLUGIN)->prefix),
"Ethiopia" => __("Ethiopia", WDFMInstance(self::PLUGIN)->prefix),
"Fiji" => __("Fiji", WDFMInstance(self::PLUGIN)->prefix),
"Finland" => __("Finland", WDFMInstance(self::PLUGIN)->prefix),
"France" => __("France", WDFMInstance(self::PLUGIN)->prefix),
"Gabon" => __("Gabon", WDFMInstance(self::PLUGIN)->prefix),
"Gambia, The" => __("Gambia, The", WDFMInstance(self::PLUGIN)->prefix),
"Georgia" => __("Georgia", WDFMInstance(self::PLUGIN)->prefix),
"Germany" => __("Germany", WDFMInstance(self::PLUGIN)->prefix),
"Ghana" => __("Ghana", WDFMInstance(self::PLUGIN)->prefix),
"Greece" => __("Greece", WDFMInstance(self::PLUGIN)->prefix),
"Grenada" => __("Grenada", WDFMInstance(self::PLUGIN)->prefix),
"Guatemala" => __("Guatemala", WDFMInstance(self::PLUGIN)->prefix),
"Guinea" => __("Guinea", WDFMInstance(self::PLUGIN)->prefix),
"Guinea-Bissau" => __("Guinea-Bissau", WDFMInstance(self::PLUGIN)->prefix),
"Guyana" => __("Guyana", WDFMInstance(self::PLUGIN)->prefix),
"Haiti" => __("Haiti", WDFMInstance(self::PLUGIN)->prefix),
"Honduras" => __("Honduras", WDFMInstance(self::PLUGIN)->prefix),
"Hong Kong" => __("Hong Kong", WDFMInstance(self::PLUGIN)->prefix),
"Hungary" => __("Hungary", WDFMInstance(self::PLUGIN)->prefix),
"Iceland" => __("Iceland", WDFMInstance(self::PLUGIN)->prefix),
"India" => __("India", WDFMInstance(self::PLUGIN)->prefix),
"Indonesia" => __("Indonesia", WDFMInstance(self::PLUGIN)->prefix),
"Iran" => __("Iran", WDFMInstance(self::PLUGIN)->prefix),
"Iraq" => __("Iraq", WDFMInstance(self::PLUGIN)->prefix),
"Ireland" => __("Ireland", WDFMInstance(self::PLUGIN)->prefix),
"Israel" => __("Israel", WDFMInstance(self::PLUGIN)->prefix),
"Italy" => __("Italy", WDFMInstance(self::PLUGIN)->prefix),
"Jamaica" => __("Jamaica", WDFMInstance(self::PLUGIN)->prefix),
"Japan" => __("Japan", WDFMInstance(self::PLUGIN)->prefix),
"Jordan" => __("Jordan", WDFMInstance(self::PLUGIN)->prefix),
"Kazakhstan" => __("Kazakhstan", WDFMInstance(self::PLUGIN)->prefix),
"Kenya" => __("Kenya", WDFMInstance(self::PLUGIN)->prefix),
"Kiribati" => __("Kiribati", WDFMInstance(self::PLUGIN)->prefix),
"Korea, North" => __("Korea, North", WDFMInstance(self::PLUGIN)->prefix),
"Korea, South" => __("Korea, South", WDFMInstance(self::PLUGIN)->prefix),
"Kuwait" => __("Kuwait", WDFMInstance(self::PLUGIN)->prefix),
"Kyrgyzstan" => __("Kyrgyzstan", WDFMInstance(self::PLUGIN)->prefix),
"Laos" => __("Laos", WDFMInstance(self::PLUGIN)->prefix),
"Latvia" => __("Latvia", WDFMInstance(self::PLUGIN)->prefix),
"Lebanon" => __("Lebanon", WDFMInstance(self::PLUGIN)->prefix),
"Lesotho" => __("Lesotho", WDFMInstance(self::PLUGIN)->prefix),
"Liberia" => __("Liberia", WDFMInstance(self::PLUGIN)->prefix),
"Libya" => __("Libya", WDFMInstance(self::PLUGIN)->prefix),
"Liechtenstein" => __("Liechtenstein", WDFMInstance(self::PLUGIN)->prefix),
"Lithuania" => __("Lithuania", WDFMInstance(self::PLUGIN)->prefix),
"Luxembourg" => __("Luxembourg", WDFMInstance(self::PLUGIN)->prefix),
"North Macedonia" => __("North Macedonia", WDFMInstance(self::PLUGIN)->prefix),
"Madagascar" => __("Madagascar", WDFMInstance(self::PLUGIN)->prefix),
"Malawi" => __("Malawi", WDFMInstance(self::PLUGIN)->prefix),
"Malaysia" => __("Malaysia", WDFMInstance(self::PLUGIN)->prefix),
"Maldives" => __("Maldives", WDFMInstance(self::PLUGIN)->prefix),
"Mali" => __("Mali", WDFMInstance(self::PLUGIN)->prefix),
"Malta" => __("Malta", WDFMInstance(self::PLUGIN)->prefix),
"Marshall Islands" => __("Marshall Islands", WDFMInstance(self::PLUGIN)->prefix),
"Mauritania" => __("Mauritania", WDFMInstance(self::PLUGIN)->prefix),
"Mauritius" => __("Mauritius", WDFMInstance(self::PLUGIN)->prefix),
"Mexico" => __("Mexico", WDFMInstance(self::PLUGIN)->prefix),
"Micronesia" => __("Micronesia", WDFMInstance(self::PLUGIN)->prefix),
"Moldova" => __("Moldova", WDFMInstance(self::PLUGIN)->prefix),
"Monaco" => __("Monaco", WDFMInstance(self::PLUGIN)->prefix),
"Mongolia" => __("Mongolia", WDFMInstance(self::PLUGIN)->prefix),
"Morocco" => __("Morocco", WDFMInstance(self::PLUGIN)->prefix),
"Mozambique" => __("Mozambique", WDFMInstance(self::PLUGIN)->prefix),
"Myanmar" => __("Myanmar", WDFMInstance(self::PLUGIN)->prefix),
"Namibia" => __("Namibia", WDFMInstance(self::PLUGIN)->prefix),
"Nauru" => __("Nauru", WDFMInstance(self::PLUGIN)->prefix),
"Nepal" => __("Nepal", WDFMInstance(self::PLUGIN)->prefix),
"Netherlands" => __("Netherlands", WDFMInstance(self::PLUGIN)->prefix),
"New Zealand" => __("New Zealand", WDFMInstance(self::PLUGIN)->prefix),
"Nicaragua" => __("Nicaragua", WDFMInstance(self::PLUGIN)->prefix),
"Niger" => __("Niger", WDFMInstance(self::PLUGIN)->prefix),
"Nigeria" => __("Nigeria", WDFMInstance(self::PLUGIN)->prefix),
"Norway" => __("Norway", WDFMInstance(self::PLUGIN)->prefix),
"Oman" => __("Oman", WDFMInstance(self::PLUGIN)->prefix),
"Pakistan" => __("Pakistan", WDFMInstance(self::PLUGIN)->prefix),
"Palau" => __("Palau", WDFMInstance(self::PLUGIN)->prefix),
"Palestine" => __("Palestine", WDFMInstance(self::PLUGIN)->prefix),
"Panama" => __("Panama", WDFMInstance(self::PLUGIN)->prefix),
"Papua New Guinea" => __("Papua New Guinea", WDFMInstance(self::PLUGIN)->prefix),
"Paraguay" => __("Paraguay", WDFMInstance(self::PLUGIN)->prefix),
"Peru" => __("Peru", WDFMInstance(self::PLUGIN)->prefix),
"Philippines" => __("Philippines", WDFMInstance(self::PLUGIN)->prefix),
"Poland" => __("Poland", WDFMInstance(self::PLUGIN)->prefix),
"Portugal" => __("Portugal", WDFMInstance(self::PLUGIN)->prefix),
"Puerto Rico" => __("Puerto Rico", WDFMInstance(self::PLUGIN)->prefix),
"Qatar" => __("Qatar", WDFMInstance(self::PLUGIN)->prefix),
"Romania" => __("Romania", WDFMInstance(self::PLUGIN)->prefix),
"Russia" => __("Russia", WDFMInstance(self::PLUGIN)->prefix),
"Rwanda" => __("Rwanda", WDFMInstance(self::PLUGIN)->prefix),
"Saint Kitts and Nevis" => __("Saint Kitts and Nevis", WDFMInstance(self::PLUGIN)->prefix),
"Saint Lucia" => __("Saint Lucia", WDFMInstance(self::PLUGIN)->prefix),
"Saint Vincent" => __("Saint Vincent", WDFMInstance(self::PLUGIN)->prefix),
"Samoa" => __("Samoa", WDFMInstance(self::PLUGIN)->prefix),
"San Marino" => __("San Marino", WDFMInstance(self::PLUGIN)->prefix),
"Sao Tome and Principe" => __("Sao Tome and Principe", WDFMInstance(self::PLUGIN)->prefix),
"Saudi Arabia" => __("Saudi Arabia", WDFMInstance(self::PLUGIN)->prefix),
"Senegal" => __("Senegal", WDFMInstance(self::PLUGIN)->prefix),
"Serbia" => __("Serbia", WDFMInstance(self::PLUGIN)->prefix),
"Montenegro" => __("Montenegro", WDFMInstance(self::PLUGIN)->prefix),
"Seychelles" => __("Seychelles", WDFMInstance(self::PLUGIN)->prefix),
"Sierra Leone" => __("Sierra Leone", WDFMInstance(self::PLUGIN)->prefix),
"Singapore" => __("Singapore", WDFMInstance(self::PLUGIN)->prefix),
"Slovakia" => __("Slovakia", WDFMInstance(self::PLUGIN)->prefix),
"Slovenia" => __("Slovenia", WDFMInstance(self::PLUGIN)->prefix),
"Solomon Islands" => __("Solomon Islands", WDFMInstance(self::PLUGIN)->prefix),
"Somalia" => __("Somalia", WDFMInstance(self::PLUGIN)->prefix),
"South Africa" => __("South Africa", WDFMInstance(self::PLUGIN)->prefix),
"Spain" => __("Spain", WDFMInstance(self::PLUGIN)->prefix),
"Sri Lanka" => __("Sri Lanka", WDFMInstance(self::PLUGIN)->prefix),
"Sudan" => __("Sudan", WDFMInstance(self::PLUGIN)->prefix),
"Suriname" => __("Suriname", WDFMInstance(self::PLUGIN)->prefix),
"Eswatini" => __("Eswatini", WDFMInstance(self::PLUGIN)->prefix),
"Sweden" => __("Sweden", WDFMInstance(self::PLUGIN)->prefix),
"Switzerland" => __("Switzerland", WDFMInstance(self::PLUGIN)->prefix),
"Syria" => __("Syria", WDFMInstance(self::PLUGIN)->prefix),
"Taiwan" => __("Taiwan", WDFMInstance(self::PLUGIN)->prefix),
"Tajikistan" => __("Tajikistan", WDFMInstance(self::PLUGIN)->prefix),
"Tanzania" => __("Tanzania", WDFMInstance(self::PLUGIN)->prefix),
"Thailand" => __("Thailand", WDFMInstance(self::PLUGIN)->prefix),
"Togo" => __("Togo", WDFMInstance(self::PLUGIN)->prefix),
"Tonga" => __("Tonga", WDFMInstance(self::PLUGIN)->prefix),
"Trinidad and Tobago" => __("Trinidad and Tobago", WDFMInstance(self::PLUGIN)->prefix),
"Tunisia" => __("Tunisia", WDFMInstance(self::PLUGIN)->prefix),
"Turkey" => __("Turkey", WDFMInstance(self::PLUGIN)->prefix),
"Turkmenistan" => __("Turkmenistan", WDFMInstance(self::PLUGIN)->prefix),
"Tuvalu" => __("Tuvalu", WDFMInstance(self::PLUGIN)->prefix),
"Uganda" => __("Uganda", WDFMInstance(self::PLUGIN)->prefix),
"Ukraine" => __("Ukraine", WDFMInstance(self::PLUGIN)->prefix),
"United Arab Emirates" => __("United Arab Emirates", WDFMInstance(self::PLUGIN)->prefix),
"United Kingdom" => __("United Kingdom", WDFMInstance(self::PLUGIN)->prefix),
"United States" => __("United States", WDFMInstance(self::PLUGIN)->prefix),
"Uruguay" => __("Uruguay", WDFMInstance(self::PLUGIN)->prefix),
"Uzbekistan" => __("Uzbekistan", WDFMInstance(self::PLUGIN)->prefix),
"Vanuatu" => __("Vanuatu", WDFMInstance(self::PLUGIN)->prefix),
"Vatican City" => __("Vatican City", WDFMInstance(self::PLUGIN)->prefix),
"Venezuela" => __("Venezuela", WDFMInstance(self::PLUGIN)->prefix),
"Vietnam" => __("Vietnam", WDFMInstance(self::PLUGIN)->prefix),
"Wales" => __("Wales", WDFMInstance(self::PLUGIN)->prefix),
"Yemen" => __("Yemen", WDFMInstance(self::PLUGIN)->prefix),
"Zambia" => __("Zambia", WDFMInstance(self::PLUGIN)->prefix),
"Zimbabwe" => __("Zimbabwe", WDFMInstance(self::PLUGIN)->prefix),
);
asort( $countries );
return $countries;
}
/**
* Get states list.
*
* @return array
*/
public static function get_states() {
$states = array(
"" => "",
"Alabama" => __("Alabama", WDFMInstance(self::PLUGIN)->prefix),
"Alaska" => __("Alaska", WDFMInstance(self::PLUGIN)->prefix),
"Arizona" => __("Arizona", WDFMInstance(self::PLUGIN)->prefix),
"Arkansas" => __("Arkansas", WDFMInstance(self::PLUGIN)->prefix),
"California" => __("California", WDFMInstance(self::PLUGIN)->prefix),
"Colorado" => __("Colorado", WDFMInstance(self::PLUGIN)->prefix),
"Connecticut" => __("Connecticut", WDFMInstance(self::PLUGIN)->prefix),
"Delaware" => __("Delaware", WDFMInstance(self::PLUGIN)->prefix),
"District Of Columbia" => __("District Of Columbia", WDFMInstance(self::PLUGIN)->prefix),
"Florida" => __("Florida", WDFMInstance(self::PLUGIN)->prefix),
"Georgia" => __("Georgia", WDFMInstance(self::PLUGIN)->prefix),
"Hawaii" => __("Hawaii", WDFMInstance(self::PLUGIN)->prefix),
"Idaho" => __("Idaho", WDFMInstance(self::PLUGIN)->prefix),
"Illinois" => __("Illinois", WDFMInstance(self::PLUGIN)->prefix),
"Indiana" => __("Indiana", WDFMInstance(self::PLUGIN)->prefix),
"Iowa" => __("Iowa", WDFMInstance(self::PLUGIN)->prefix),
"Kansas" => __("Kansas", WDFMInstance(self::PLUGIN)->prefix),
"Kentucky" => __("Kentucky", WDFMInstance(self::PLUGIN)->prefix),
"Louisiana" => __("Louisiana", WDFMInstance(self::PLUGIN)->prefix),
"Maine" => __("Maine", WDFMInstance(self::PLUGIN)->prefix),
"Maryland" => __("Maryland", WDFMInstance(self::PLUGIN)->prefix),
"Massachusetts" => __("Massachusetts", WDFMInstance(self::PLUGIN)->prefix),
"Michigan" => __("Michigan", WDFMInstance(self::PLUGIN)->prefix),
"Minnesota" => __("Minnesota", WDFMInstance(self::PLUGIN)->prefix),
"Mississippi" => __("Mississippi", WDFMInstance(self::PLUGIN)->prefix),
"Missouri" => __("Missouri", WDFMInstance(self::PLUGIN)->prefix),
"Montana" => __("Montana", WDFMInstance(self::PLUGIN)->prefix),
"Nebraska" => __("Nebraska", WDFMInstance(self::PLUGIN)->prefix),
"Nevada" => __("Nevada", WDFMInstance(self::PLUGIN)->prefix),
"New Hampshire" => __("New Hampshire", WDFMInstance(self::PLUGIN)->prefix),
"New Jersey" => __("New Jersey", WDFMInstance(self::PLUGIN)->prefix),
"New Mexico" => __("New Mexico", WDFMInstance(self::PLUGIN)->prefix),
"New York" => __("New York", WDFMInstance(self::PLUGIN)->prefix),
"North Carolina" => __("North Carolina", WDFMInstance(self::PLUGIN)->prefix),
"North Dakota" => __("North Dakota", WDFMInstance(self::PLUGIN)->prefix),
"Ohio" => __("Ohio", WDFMInstance(self::PLUGIN)->prefix),
"Oklahoma" => __("Oklahoma", WDFMInstance(self::PLUGIN)->prefix),
"Oregon" => __("Oregon", WDFMInstance(self::PLUGIN)->prefix),
"Pennsylvania" => __("Pennsylvania", WDFMInstance(self::PLUGIN)->prefix),
"Rhode Island" => __("Rhode Island", WDFMInstance(self::PLUGIN)->prefix),
"South Carolina" => __("South Carolina", WDFMInstance(self::PLUGIN)->prefix),
"South Dakota" => __("South Dakota", WDFMInstance(self::PLUGIN)->prefix),
"Tennessee" => __("Tennessee", WDFMInstance(self::PLUGIN)->prefix),
"Texas" => __("Texas", WDFMInstance(self::PLUGIN)->prefix),
"Utah" => __("Utah", WDFMInstance(self::PLUGIN)->prefix),
"Vermont" => __("Vermont", WDFMInstance(self::PLUGIN)->prefix),
"Virginia" => __("Virginia", WDFMInstance(self::PLUGIN)->prefix),
"Washington" => __("Washington", WDFMInstance(self::PLUGIN)->prefix),
"West Virginia" => __("West Virginia", WDFMInstance(self::PLUGIN)->prefix),
"Wisconsin" => __("Wisconsin", WDFMInstance(self::PLUGIN)->prefix),
"Wyoming" => __("Wyoming", WDFMInstance(self::PLUGIN)->prefix),
);
asort( $states );
return $states;
}
/**
* Get Canada states list.
*
* @return array
*/
public static function get_provinces_canada() {
$province = array(
"" => "",
"Alberta" => __("Alberta", WDFMInstance(self::PLUGIN)->prefix),
"British Columbia" => __("British Columbia", WDFMInstance(self::PLUGIN)->prefix),
"Manitoba" => __("Manitoba", WDFMInstance(self::PLUGIN)->prefix),
"New Brunswick" => __("New Brunswick", WDFMInstance(self::PLUGIN)->prefix),
"Newfoundland and Labrador" => __("Newfoundland and Labrador", WDFMInstance(self::PLUGIN)->prefix),
"Northwest Territories" => __("Northwest Territories", WDFMInstance(self::PLUGIN)->prefix),
"Nova Scotia" => __("Nova Scotia", WDFMInstance(self::PLUGIN)->prefix),
"Nunavut" => __("Nunavut", WDFMInstance(self::PLUGIN)->prefix),
"Ontario" => __("Ontario", WDFMInstance(self::PLUGIN)->prefix),
"Prince Edward Island" => __("Prince Edward Island", WDFMInstance(self::PLUGIN)->prefix),
"Quebec" => __("Quebec", WDFMInstance(self::PLUGIN)->prefix),
"Saskatchewan" => __("Saskatchewan", WDFMInstance(self::PLUGIN)->prefix),
"Yukon" => __("Yukon", WDFMInstance(self::PLUGIN)->prefix),
);
asort( $province );
return $province;
}
/**
* Localize ui datepicker.
*
* @return string
*/
public static function localize_ui_datepicker() {
return 'jQuery(document).ready(function(jQuery){
jQuery.datepicker.setDefaults( {
"closeText":"' . __('Done', WDFMInstance(self::PLUGIN)->prefix) . '",
"prevText":"' . __('Prev', WDFMInstance(self::PLUGIN)->prefix) . '",
"nextText":"' . __('Next', WDFMInstance(self::PLUGIN)->prefix) . '",
"currentText":"' . __('Today', WDFMInstance(self::PLUGIN)->prefix) . '",
"monthNames":["' . __('January', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('February', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('March', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('April', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('May', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('June', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('July', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('August', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('September', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('October', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('November', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('December', WDFMInstance(self::PLUGIN)->prefix) . '"],
"monthNamesShort":["' . __('Jan', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Feb', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Mar', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Apr', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('May', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Jun', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Jul', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Aug', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Sep', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Oct', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Nov', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Dec', WDFMInstance(self::PLUGIN)->prefix) . '"],
"dayNames":["' . __('Sunday', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Monday', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Tuesday', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Wednesday', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Thursday', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Friday', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Saturday', WDFMInstance(self::PLUGIN)->prefix) . '"],
"dayNamesShort":["' . __('Sun', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Mon', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Tue', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Wed', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Thu', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Fri', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Sat', WDFMInstance(self::PLUGIN)->prefix) . '"],
"dayNamesMin":["' . __('Su', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Mo', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Tu', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('We', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Th', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Fr', WDFMInstance(self::PLUGIN)->prefix) . '","' . __('Sa', WDFMInstance(self::PLUGIN)->prefix) . '"]
});
})';
}
/**
* Forbidden template.
*
* @return string
*/
public static function forbidden_template() {
return '<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>';
}
/**
* Sanitize parameters and send email.
*
* @param string $recipient
* @param string $subject
* @param string $message
* @param array $header_arr
* @param array $attachment
*
* @return bool
*/
public static function mail($recipient, $subject, $message = '', $header_arr = array(), $attachment = array(), $save_uploads = 1 ) {
$recipient = trim($recipient, ',');
$recipient = explode(',', $recipient);
$recipient = array_map('trim', $recipient);
if ( empty($recipient) ) {
return FALSE;
}
if ( function_exists('mb_internal_encoding') ) {
mb_internal_encoding('UTF-8');
}
$subject = html_entity_decode($subject, ENT_QUOTES);
$subject = stripslashes($subject);
if ( function_exists('mb_encode_mimeheader') ) {
$subject = mb_encode_mimeheader($subject, 'UTF-8', 'Q');
}
$message = stripslashes($message);
// $message = self::encodeQuotedPrintable($message);
$headers = array();
// $headers[] = 'Content-Transfer-Encoding: QUOTED-PRINTABLE';
if ( isset($header_arr['from_name']) && $header_arr['from_name'] ) {
$from_name = $header_arr['from_name'];
$from_name = html_entity_decode($from_name, ENT_QUOTES);
$from_name = stripslashes($from_name);
if ( function_exists('mb_encode_mimeheader') ) {
$from_name = mb_encode_mimeheader($from_name, 'UTF-8', 'Q');
}
// $from_str .= "'" . $from_name . "' ";
self::$email_from_name = $from_name;
add_filter('wp_mail_from_name', array('WDW_FMC_Library', 'mail_from_name'));
}
if ( isset($header_arr['from']) && $header_arr['from'] ) {
$from = $header_arr['from'];
$from = trim($from);
$from = trim($from, ',');
// $from_str = "From: ";
// $from_str .= "<" . $from . ">";
// $headers[] = $from_str;
self::$email_from = $from;
if ( is_email( $from ) ) {
add_filter('wp_mail_from', array('WDW_FMC_Library', 'mail_from'));
}
}
if ( isset($header_arr['content_type']) && $header_arr['content_type'] ) {
// $headers[] = "Content-Type: " . $header_arr['content_type'];
self::$email_content_type = $header_arr['content_type'];
add_filter('wp_mail_content_type', array('WDW_FMC_Library', 'mail_content_type'));
}
if ( isset($header_arr['charset']) && $header_arr['charset'] ) {
// $headers[] = $header_arr['charset'];
self::$email_charset = $header_arr['charset'];
add_filter('wp_mail_charset', array('WDW_FMC_Library', 'mail_charset'));
}
if ( isset($header_arr['reply_to']) && $header_arr['reply_to'] ) {
$reply_to = $header_arr['reply_to'];
$reply_to = trim($reply_to);
$reply_to = trim($reply_to, ',');
if ( is_email( $reply_to ) ) {
$headers[] = "Reply-To: <" . $reply_to . ">";
}
}
if ( isset($header_arr['cc']) && $header_arr['cc'] ) {
$cc = $header_arr['cc'];
$cc = trim($cc);
$cc = trim($cc, ',');
$headers[] = "Cc: " . $cc;
}
if ( isset($header_arr['bcc']) && $header_arr['bcc'] ) {
$bcc = $header_arr['bcc'];
$bcc = trim($bcc);
$bcc = trim($bcc, ',');
$headers[] = "Bcc: " . $bcc;
}
$temp = array();
if ( !empty( $attachment ) ) {
foreach ( $attachment as $att ) {
if( $save_uploads ) {
$temp[] = ABSPATH . $att;
} else {
$temp[] = $att;
}
}
$attachment = $temp;
}
$sent = wp_mail($recipient, $subject, $message, $headers, $attachment);
remove_filter('wp_mail_content_type', array('WDW_FMC_Library', 'mail_content_type'));
remove_filter('wp_mail_charset', array('WDW_FMC_Library', 'mail_charset'));
remove_filter('wp_mail_from', array('WDW_FMC_Library', 'mail_from'));
remove_filter('wp_mail_from_name', array('WDW_FMC_Library', 'mail_from_name'));
return $sent;
}
public static $email_content_type;
public static $email_charset;
public static $email_from;
public static $email_from_name;
public static function mail_content_type() {
return self::$email_content_type;
}
public static function mail_charset() {
return self::$email_charset;
}
public static function mail_from() {
return self::$email_from;
}
public static function mail_from_name() {
return self::$email_from_name;
}
/**
* Get labels parameters.
*
* @param int $form_id
* @param int $page_num
* @param int $per_num
*
* @return array $labels_parameters
*/
public static function get_labels_parameters($form_id, $page_num = 0, $per_num = 0) {
global $wpdb;
$labels = array();
$labels_id = array();
$form_labels = array();
$sorted_labels_id = array();
$label_names = array();
$label_types = array();
$sorted_label_types = array();
$label_names_original = array();
$labels_parameters = array();
$join_query = array();
$join_where = array();
$join_verified = array();
$rows_ord = array();
$join = '';
$query = $wpdb->prepare("SELECT `group_id`,`element_value` FROM " . $wpdb->prefix . "formmaker_submits WHERE `form_id`='%d' and `element_label` = 'verifyinfo' ", $form_id);
$ver_emails_data = $wpdb->get_results($query);
$ver_emails_array = array();
if ( $ver_emails_data ) {
foreach ( $ver_emails_data as $ver_email ) {
$elem_label = str_replace('verified**', '', $ver_email->element_value);
$query = $wpdb->prepare("SELECT `element_value` FROM " . $wpdb->prefix . "formmaker_submits WHERE `form_id`='%d' AND `group_id` = '%d' AND `element_label` = '%s' ", $form_id, (int) $ver_email->group_id, $elem_label);
if ( !isset($ver_emails_array[$elem_label]) ) {
$ver_emails_array[$elem_label] = array();
}
if ( !in_array($wpdb->get_var($query), $ver_emails_array[$elem_label]) ) {
$ver_emails_array[$elem_label][] = $wpdb->get_var($query);
}
}
}
for ( $i = 0; $i < 9; $i++ ) {
array_push($labels_parameters, NULL);
}
$sorted_label_names = array();
$sorted_label_names_original = array();
$where_labels = array();
$where2 = array();
$order_by = ((isset($_POST['order_by']) && esc_html(stripslashes($_POST['order_by'])) != '') ? esc_html(stripslashes($_POST['order_by'])) : 'group_id');
$asc_or_desc = ((isset($_POST['asc_or_desc']) && $_POST['asc_or_desc'] == 'asc') ? 'asc' : 'desc');
$lists['hide_label_list'] = ((isset($_POST['hide_label_list'])) ? esc_html(stripslashes($_POST['hide_label_list'])) : '');
$lists['startdate'] = ((isset($_POST['startdate'])) ? esc_html(stripslashes($_POST['startdate'])) : '');
$lists['enddate'] = ((isset($_POST['enddate'])) ? esc_html(stripslashes($_POST['enddate'])) : '');
$lists['ip_search'] = ((isset($_POST['ip_search'])) ? esc_html(stripslashes($_POST['ip_search'])) : '');
$lists['username_search'] = ((isset($_POST['username_search'])) ? esc_html(stripslashes($_POST['username_search'])) : '');
$lists['useremail_search'] = ((isset($_POST['useremail_search'])) ? esc_html(stripslashes($_POST['useremail_search'])) : '');
$lists['id_search'] = ((isset($_POST['id_search'])) ? esc_html(stripslashes($_POST['id_search'])) : '');
if ( $lists['ip_search'] ) {
$where[] = 'ip LIKE "%' . $lists['ip_search'] . '%"';
}
if ( $lists['startdate'] != '' ) {
$where[] = " `date`>='" . $lists['startdate'] . " 00:00:00' ";
}
if ( $lists['enddate'] != '' ) {
$where[] = " `date`<='" . $lists['enddate'] . " 23:59:59' ";
}
if ( $lists['username_search'] ) {
$where[] = 'user_id_wd IN (SELECT ID FROM ' . $wpdb->prefix . 'users WHERE display_name LIKE "%' . $lists['username_search'] . '%")';
}
if ( $lists['useremail_search'] ) {
$where[] = 'user_id_wd IN (SELECT ID FROM ' . $wpdb->prefix . 'users WHERE user_email LIKE "%' . $lists['useremail_search'] . '%")';
}
if ( $lists['id_search'] ) {
$where[] = 'group_id =' . (int) $lists['id_search'];
}
$where[] = 'form_id=' . $form_id . '';
$where = (count($where) ? ' ' . implode(' AND ', $where) : '');
if ( $order_by == 'group_id' or $order_by == 'date' or $order_by == 'ip' ) {
$orderby = ' ORDER BY ' . $order_by . ' ' . $asc_or_desc . '';
}
elseif ( $order_by == 'display_name' or $order_by == 'user_email' ) {
$orderby = ' ORDER BY (SELECT ' . $order_by . ' FROM ' . $wpdb->prefix . 'users WHERE ID=user_id_wd) ' . $asc_or_desc . '';
}
else {
$orderby = "";
}
if ( $form_id ) {
for ( $i = 0; $i < 9; $i++ ) {
array_pop($labels_parameters);
}
$query = "SELECT distinct element_label FROM " . $wpdb->prefix . "formmaker_submits WHERE " . $where;
$results = $wpdb->get_results($query);
for ( $i = 0; $i < count($results); $i++ ) {
array_push($labels, $results[$i]->element_label);
}
$form = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "formmaker WHERE id='%d'", $form_id));
if ( !empty($form->label_order) && strpos($form->label_order, 'type_paypal_') ) {
$form->label_order = $form->label_order . "item_total#**id**#Item Total#**label**#type_paypal_payment_total#****#total#**id**#Total#**label**#type_paypal_payment_total#****#0#**id**#Payment Status#**label**#type_paypal_payment_status#****#";
}
if ( !empty($form->label_order)) {
$form_labels = explode('#****#', $form->label_order);
}
$form_labels = array_slice($form_labels, 0, count($form_labels) - 1);
foreach ( $form_labels as $key => $form_label ) {
$label_id = explode('#**id**#', $form_label);
array_push($labels_id, $label_id[0]);
$label_name_type = explode('#**label**#', $label_id[1]);
array_push($label_names_original, $label_name_type[0]);
$ptn = "/[^a-zA-Z0-9_]/";
$rpltxt = "";
$label_name = preg_replace($ptn, $rpltxt, $label_name_type[0]);
array_push($label_names, $label_name);
array_push($label_types, $label_name_type[1]);
}
foreach ( $labels_id as $key => $label_id ) {
if ( in_array($label_id, $labels) ) {
if ( !in_array($label_id, $sorted_labels_id) ) {
array_push($sorted_labels_id, $label_id);
}
array_push($sorted_label_names, $label_names[$key]);
array_push($sorted_label_types, $label_types[$key]);
array_push($sorted_label_names_original, $label_names_original[$key]);
if ( isset($_POST[$form_id . '_' . $label_id . '_search']) ) {
$search_temp = esc_html($_POST[$form_id . '_' . $label_id . '_search']);
}
else {
$search_temp = '';
}
$search_temp = strtolower($search_temp);
$lists[$form_id . '_' . $label_id . '_search'] = $search_temp;
if ( $search_temp ) {
$join_query[] = 'search';
$join_where[] = array( 'label' => $label_id, 'search' => $search_temp );
}
if ( isset($_POST[$form_id . '_' . $label_id . '_search_verified']) ) {
$search_verified = $_POST[$form_id . '_' . $label_id . '_search_verified'];
$lists[$form_id . '_' . $label_id . '_search_verified'] = $search_verified;
}
else {
$search_verified = '';
}
if ( $search_verified && isset($ver_emails_array[$label_id]) ) {
$join_query[] = 'search';
$join_where[] = NULL;
$join_verified[] = array(
'label' => $label_id,
'ver_search' => implode('|', $ver_emails_array[$label_id]),
);
}
}
}
if ( strpos($order_by, "_field") ) {
if ( in_array(str_replace("_field", "", $order_by), $labels) ) {
$join_query[] = 'sort';
$join_where[] = array( 'label' => str_replace("_field", "", $order_by) );
}
}
$cols = 'group_id';
if ( $order_by == 'date' or $order_by == 'ip' ) {
$cols = 'group_id, date, ip';
}
$ver_where = '';
if ( !empty($join_verified) ) {
foreach ( $join_verified as $key_ver => $join_ver ) {
$ver_where .= '(element_label="' . $join_ver['label'] . '" AND element_value REGEXP "' . $join_ver['ver_search'] . '" ) AND';
}
}
switch ( count($join_query) ) {
case 0:
$join = 'SELECT distinct group_id FROM ' . $wpdb->prefix . 'formmaker_submits WHERE ' . $where;
break;
case 1:
if ( $join_query[0] == 'sort' ) {
$join = 'SELECT group_id FROM ' . $wpdb->prefix . 'formmaker_submits WHERE ' . $where . ' AND element_label="' . $join_where[0]['label'] . '" ';
$join_count = 'SELECT count(group_id) FROM ' . $wpdb->prefix . 'formmaker_submits WHERE form_id="' . $form_id . '" AND element_label="' . $join_where[0]['label'] . '" ';
$orderby = ' ORDER BY `element_value` ' . $asc_or_desc;
}
else {
if ( isset($join_where[0]['search']) ) {
$join = 'SELECT group_id FROM ' . $wpdb->prefix . 'formmaker_submits WHERE element_label="' . $join_where[0]['label'] . '" AND (element_value LIKE "%' . $join_where[0]['search'] . '%" OR element_value LIKE "%' . str_replace(' ', '@@@', $join_where[0]['search']) . '%") AND ' . $where;
}
else {
$join = 'SELECT group_id FROM ' . $wpdb->prefix . 'formmaker_submits WHERE ' . $ver_where . $where;
}
}
break;
default:
if ( !empty($join_verified) ) {
if ( isset($join_where[0]['search']) ) {
$join = 'SELECT t.group_id from (SELECT t1.group_id from (SELECT ' . $cols . ' FROM ' . $wpdb->prefix . 'formmaker_submits WHERE (element_label="' . $join_where[0]['label'] . '" AND (element_value LIKE "%' . $join_where[0]['search'] . '%" OR element_value LIKE "%' . str_replace(' ', '@@@', $join_where[0]['search']) . '%")) AND ' . $where . ' ) as t1 JOIN (SELECT group_id FROM ' . $wpdb->prefix . 'formmaker_submits WHERE ' . $ver_where . $where . ') as t2 ON t1.group_id = t2.group_id) as t ';
}
else {
$join = 'SELECT t.group_id FROM (SELECT ' . $cols . ' FROM ' . $wpdb->prefix . 'formmaker_submits WHERE ' . $ver_where . $where . ') as t ';
}
}
else {
$join = 'SELECT t.group_id FROM (SELECT ' . $cols . ' FROM ' . $wpdb->prefix . 'formmaker_submits WHERE ' . $where . ' AND element_label="' . $join_where[0]['label'] . '" AND (element_value LIKE "%' . $join_where[0]['search'] . '%" OR element_value LIKE "%' . str_replace(' ', '@@@', $join_where[0]['search']) . '%" )) as t ';
}
for ( $key = 1; $key < count($join_query); $key++ ) {
if ( $join_query[$key] == 'sort' ) {
if ( isset($join_where[$key]) ) {
$join .= 'LEFT JOIN (SELECT group_id as group_id' . $key . ', element_value FROM ' . $wpdb->prefix . 'formmaker_submits WHERE ' . $where . ' AND element_label="' . $join_where[$key]['label'] . '") as t' . $key . ' ON t' . $key . '.group_id' . $key . '=t.group_id ';
$orderby = ' ORDER BY t' . $key . '.`element_value` ' . $asc_or_desc . '';
}
}
else {
if ( isset($join_where[$key]) ) {
$join .= 'INNER JOIN (SELECT group_id as group_id' . $key . ' FROM ' . $wpdb->prefix . 'formmaker_submits WHERE ' . $where . ' AND element_label="' . $join_where[$key]['label'] . '" AND (element_value LIKE "%' . $join_where[$key]['search'] . '%" OR element_value LIKE "%' . str_replace(' ', '@@@', $join_where[$key]['search']) . '%")) as t' . $key . ' ON t' . $key . '.group_id' . $key . '=t.group_id ';
}
}
}
break;
}
$pos = strpos($join, 'SELECT t.group_id');
if ( $pos === FALSE ) {
$query = str_replace(array(
'SELECT group_id',
'SELECT distinct group_id',
), array( 'SELECT count(distinct group_id)', 'SELECT count(distinct group_id)' ), $join);
}
else {
$query = str_replace('SELECT t.group_id', 'SELECT count(t.group_id)', $join);
}
$total = $wpdb->get_var($query);
$query_sub_count = "SELECT count(distinct group_id) from " . $wpdb->prefix . "formmaker_submits";
$sub_count = (int) $wpdb->get_var($query_sub_count);
$query = $join . ' ' . $orderby . ' LIMIT ' . $page_num . ', '.$per_num;
$results = $wpdb->get_results($query);
for ( $i = 0; $i < count($results); $i++ ) {
array_push($rows_ord, $results[$i]->group_id);
}
$query1 = $join . ' ' . $orderby;
$searched_group_ids = $wpdb->get_results($query1);
$searched_ids = array();
for ( $i = 0; $i < count($searched_group_ids); $i++ ) {
array_push($searched_ids, $searched_group_ids[$i]->group_id);
}
$where2 = array();
$where2[] = "group_id='0'";
foreach ( $rows_ord as $rows_ordd ) {
$where2[] = "group_id='" . $rows_ordd . "'";
}
$where2 = (count($where2) ? ' WHERE ' . implode(' OR ', $where2) . '' : '');
$query = 'SELECT * FROM ' . $wpdb->prefix . 'formmaker_submits ' . $where2;
$rows = $wpdb->get_results($query);
$group_ids = $rows_ord;
$lists['total'] = $total;
$lists['limit'] = $per_num;
$where_choices = $where;
array_push($labels_parameters, $sorted_labels_id);
array_push($labels_parameters, $sorted_label_types);
array_push($labels_parameters, $lists);
array_push($labels_parameters, $sorted_label_names);
array_push($labels_parameters, $sorted_label_names_original);
array_push($labels_parameters, $rows);
array_push($labels_parameters, $group_ids);
array_push($labels_parameters, $where_choices);
array_push($labels_parameters, $searched_ids);
}
return $labels_parameters;
}
/**
* Encode a given string with the QUOTED_PRINTABLE mechanism and wrap the lines.
*
* @param string $str
* @param int $lineLength Line length; defaults to {@link LINELENGTH}
* @param string $lineEnd Line end; defaults to {@link LINEEND}
*
* @return string
*/
public static function encodeQuotedPrintable( $str, $lineLength = self::LINELENGTH, $lineEnd = self::LINEEND ) {
$out = '';
$str = self::_encodeQuotedPrintable($str);
// Split encoded text into separate lines
while ( strlen($str) > 0 ) {
$ptr = strlen($str);
if ( $ptr > $lineLength ) {
$ptr = $lineLength;
}
// Ensure we are not splitting across an encoded character
$pos = strrpos(substr($str, 0, $ptr), '=');
if ( $pos !== FALSE && $pos >= $ptr - 2 ) {
$ptr = $pos;
}
// Check if there is a space at the end of the line and rewind
if ( $ptr > 0 && $str[$ptr - 1] == ' ' ) {
--$ptr;
}
// Add string and continue
$out .= substr($str, 0, $ptr) . '=' . $lineEnd;
$str = substr($str, $ptr);
}
$out = rtrim($out, $lineEnd);
$out = rtrim($out, '=');
return $out;
}
/**
* Converts a string into quoted printable format.
*
* @param string $str
*
* @return string
*/
private static function _encodeQuotedPrintable( $str ) {
$str = str_replace('=', '=3D', $str);
$str = str_replace(self::$qpKeys, self::$qpReplaceValues, $str);
$str = rtrim($str);
return $str;
}
/**
* decode a quoted printable encoded string
* The charset of the returned string depends on your iconv settings.
*
* @param string $string Encoded string
*
* @return string Decoded string
*/
public static function decodeQuotedPrintable( $string ) {
return quoted_printable_decode($string);
}
/**
* Replace currencycode.
*
* @param string $key
*
* @return string
*/
public static function replace_currency_code( $currency ) {
$currency_code = array('USD', 'EUR', 'GBP', 'JPY', 'CAD', 'MXN', 'HKD', 'HUF', 'NOK', 'NZD', 'SGD', 'SEK', 'PLN', 'AUD', 'DKK', 'CHF', 'CZK', 'ILS', 'BRL', 'TWD', 'MYR', 'PHP', 'THB');
$currency_sign = array('$', '€', '£', '¥', 'C$', 'Mex$', 'HK$', 'Ft', 'kr', 'NZ$', 'S$', 'kr', 'zl', 'A$', 'kr', 'CHF', 'Kc', '₪', 'R$', 'NT$', 'RM', '₱', '฿');
if (isset($currency_code[$currency])) {
$currency = $currency_sign[array_search($currency, $currency_code)];
}
return $currency;
}
/**
* Create Email options placeholders.
*
* @param array $labels
* @return array $data
*/
public static function create_email_options_placeholders( $labels = array() ) {
$data = array();
$form_inputs = array();
$continue_types = array('type_submit_reset', 'type_editor', 'type_map', 'type_mark_map', 'type_captcha', 'type_recaptcha', 'type_button', 'type_send_copy');
$inputs = array(
array('value' => 'all', 'title' => __('All fields list', WDFMInstance(self::PLUGIN)->prefix)),
);
if ( !empty($labels) ) {
foreach($labels as $key => $label) {
if ( empty($key) || in_array($label['type'], $continue_types) ) {
continue;
}
if ( $label['type'] == "type_file_upload" ) {
$key = $key . '(link)';
}
$form_inputs[] = array('value' => $key, 'title' => $label['name'] );
}
}
$data[__('Form fields', WDFMInstance(self::PLUGIN)->prefix)] = array_merge($inputs, $form_inputs);
$data[__('Misc', WDFMInstance(self::PLUGIN)->prefix)] = array(
array('value' => 'formtitle', 'title' => __('Form Title', WDFMInstance(self::PLUGIN)->prefix)),
array('value' => 'subid', 'title' => __('Submission ID', WDFMInstance(self::PLUGIN)->prefix)),
array('value' => 'ip', 'title' => __('IP', WDFMInstance(self::PLUGIN)->prefix)),
array('value' => 'adminemail', 'title' => __('Admin Email', WDFMInstance(self::PLUGIN)->prefix)),
array('value' => 'useremail', 'title' => __('User Email', WDFMInstance(self::PLUGIN)->prefix)),
array('value' => 'username', 'title' => __('User Name', WDFMInstance(self::PLUGIN)->prefix)),
array('value' => 'pageurl', 'title' => __('Page Url', WDFMInstance(self::PLUGIN)->prefix)),
array('value' => 'verificationlink', 'title' => __('Verification Link', WDFMInstance(self::PLUGIN)->prefix)),
);
$data[__('Misc', WDFMInstance(self::PLUGIN)->prefix)] = apply_filters('fm_placeholders_misc', $data[__('Misc', WDFMInstance(self::PLUGIN)->prefix)]);
return $data;
}
/**
* Get shortcode data.
*
* @return json $data
*/
public static function get_shortcode_data() {
global $wpdb;
$rows = $wpdb->get_results("SELECT `id`, `title` as name, `published` FROM `" . $wpdb->prefix . "formmaker`" . (!WDFMInstance(self::PLUGIN)->is_free ? '' : ' WHERE id' . (WDFMInstance(self::PLUGIN)->is_free == 1 ? ' NOT ' : ' ') . 'IN (' . (get_option('contact_form_forms', '') != '' ? get_option('contact_form_forms') : 0) . ') ORDER BY `title`'));
foreach ($rows as $row) {
if( $row->published == 0) {
$row->name .= ' - ' . __('Unpublished', WDFMInstance(self::PLUGIN)->prefix);
}
}
$data = array();
$data['shortcode_prefix'] = WDFMInstance(self::PLUGIN)->is_free == 2 ? 'wd_contact_form' : 'Form';
$data['inputs'][] = array(
'type' => 'select',
'id' => WDFMInstance(self::PLUGIN)->prefix . '_id',
'name' => WDFMInstance(self::PLUGIN)->prefix . '_id',
'shortcode_attibute_name' => 'id',
'options' => $rows,
);
return json_encode($data);
}
/**
* Session start if not started.
*/
public static function start_session() {
if (session_id() == '' || (function_exists('session_status') && (session_status() == PHP_SESSION_NONE))) {
@session_start();
}
}
public static function get_user_submission_ids( $email_address ) {
global $wpdb;
$user = get_user_by( 'email', $email_address );
$query = 'SELECT DISTINCT submits.`form_id`, form.`title`, submits.`group_id` FROM ' . $wpdb->prefix . 'formmaker_submits as submits INNER JOIN ' . $wpdb->prefix . 'formmaker as form ON submits.form_id=form.id WHERE submits.`element_value`=\'' . $email_address . '\'' . ($user ? ' OR submits.`user_id_wd`=' . $user->ID : '') . (!WDFMInstance(self::PLUGIN)->is_free ? '' : ' AND submits.form_id' . (WDFMInstance(self::PLUGIN)->is_free == 1 ? ' NOT ' : ' ') . 'IN (' . (get_option( 'contact_form_forms', '' ) != '' ? get_option( 'contact_form_forms' ) : 0) . ')') . ' ORDER BY submits.`form_id`';
$results = $wpdb->get_results($query);
return $results;
}
public static function get_submission_by_id( $group_id ) {
global $wpdb;
$query = 'SELECT * FROM ' . $wpdb->prefix . 'formmaker_submits WHERE `group_id`=' . (int) $group_id;
$results = $wpdb->get_results($query);
return $results;
}
public static function delete_user_submissions( $email_address ) {
global $wpdb;
$submission_ids = self::get_user_submission_ids( $email_address );
$ids = array();
foreach ($submission_ids as $id) {
$ids[] = $id->group_id;
}
$ids = implode(',', $ids);
$query = 'DELETE FROM ' . $wpdb->prefix . 'formmaker_sessions WHERE group_id IN (' . $ids . ')';
$deleted = $wpdb->query($query);
$query = 'DELETE FROM ' . $wpdb->prefix . 'formmaker_submits WHERE group_id IN (' . $ids . ')';
$deleted = $deleted || $wpdb->query($query);
return $deleted;
}
public static function privacy_personal_data_export ( $email_address, $page = 1 ) {
$export_items = array();
$submission_ids = self::get_user_submission_ids( $email_address );
if ($submission_ids) {
require_once WDFMInstance(self::PLUGIN)->plugin_dir . '/admin/models/model.php';
require_once WDFMInstance(self::PLUGIN)->plugin_dir . '/admin/models/Submissions_fm.php';
$model_class = self::PLUGIN == 2 ? 'FMModelSubmissions_fmc' : 'FMModelSubmissions_fm';
$model = new $model_class();
$form_id = 0;
$label_parameters = array();
foreach ($submission_ids as $submission_id) {
if ($submission_id->form_id != $form_id) {
$form_id = $submission_id->form_id;
$label_parameters = $model->get_labels_parameters($form_id);
}
$data = array();
$submission = self::get_submission_by_id($submission_id->group_id);
if ( $submission ) {
$data[] = array(
'name' => __( 'Form Title', WDFMInstance(self::PLUGIN)->prefix ),
'value' => $submission_id->title
);
// Selecting this each time as any user could submit a data containing $email_address.
$user = get_user_by( 'id', $submission[0]->user_id_wd );
if ($user) {
$data[] = array(
'name' => __( 'Submitter Name', WDFMInstance( self::PLUGIN )->prefix ),
'value' => $user->display_name
);
$data[] = array(
'name' => __( 'Submitter Email', WDFMInstance( self::PLUGIN )->prefix ),
'value' => $user->user_email
);
}
$data[] = array(
'name' => __( 'Submitter IP', WDFMInstance(self::PLUGIN)->prefix ),
'value' => $submission[0]->ip
);
$data[] = array(
'name' => __( 'Submission Date', WDFMInstance(self::PLUGIN)->prefix ),
'value' => $submission[0]->date
);
foreach ( $submission as $row ) {
$element_label = $label_parameters[3][array_search($row->element_label, $label_parameters[0])];
$data[] = array(
'name' => $element_label,
'value' => $row->element_value
);
}
}
$item_id = WDFMInstance(self::PLUGIN)->slug . '-submission-' . $submission_id->group_id;
// This is nor submission group_id.
$group_id = WDFMInstance(self::PLUGIN)->slug;
$group_label = WDFMInstance(self::PLUGIN)->nicename . __( ' Submissions', WDFMInstance(self::PLUGIN)->prefix );
$export_items[] = array(
'group_id' => $group_id,
'group_label' => $group_label,
'item_id' => $item_id,
'data' => $data,
);
}
}
return array(
'data' => $export_items,
'done' => true,
);
}
public static function privacy_personal_data_erase( $email_address, $page = 1 ) {
$items_removed = self::delete_user_submissions( $email_address );
return array(
'items_removed' => $items_removed,
'items_retained' => false,
'messages' => array(sprintf(__('All personal data and submissions of this user found in %s plugin were removed.', WDFMInstance(self::PLUGIN)->prefix), WDFMInstance(self::PLUGIN)->nicename)),
'done' => true,
);
}
/**
* Array remove keys.
*
* @param array $array
* @param array $keys
* @return array
*/
public static function array_remove_keys( $array = array(), $keys = array() ) {
if ( !empty($array) ) {
foreach ( $array as $key => $val ) {
if ( isset($keys[$key]) ) {
unset($array[$key]);
}
}
}
return $array;
}
/**
* Check if is preview of Elementor builder.
*
* @return bool
*/
public static function elementor_is_active() {
if ( in_array(WDW_FM_Library(self::PLUGIN)->get('action', ''), array(
'elementor',
'elementor_ajax',
)) || WDW_FM_Library(self::PLUGIN)->get('elementor-preview', '') ) {
return TRUE;
}
return FALSE;
}
// TODO. This function should be replaced with WP functionality in another version. At the moment it is not.
/**
* Get privacy_policy_url
*
* @return string $url
*/
public static function get_privacy_policy_url() {
$permalink = '';
$title = __('Privacy Policy', WDFMInstance(self::PLUGIN)->prefix);
$post_id = get_option( 'wp_page_for_privacy_policy' );
if ( $post_id ) {
$post = get_post( $post_id, OBJECT );
if ( !empty($post) && $post->post_status == 'publish' ) {
$permalink = get_permalink( $post_id );
$title = $post->post_title;
}
}
return array('url' => $permalink, 'title' => $title);
}
public static function unique_number() {
$use_random_number = ( WDW_FM_Library(self::PLUGIN)->elementor_is_active() ) ? TRUE : FALSE;
if ($use_random_number) {
return mt_rand();
}
else {
global $fm;
$unique = $fm;
$fm++;
return $unique;
}
}
/**
* Get forms.
*
* @return array
*/
public static function get_forms() {
global $wpdb;
$query = "SELECT `id`, `title`, `published` FROM `" . $wpdb->prefix . "formmaker`" . (!WDFMInstance(self::PLUGIN)->is_free ? '' : ' WHERE id' . (WDFMInstance(self::PLUGIN)->is_free == 1 ? ' NOT ' : ' ') . 'IN (' . (get_option('contact_form_forms', '') != '' ? get_option('contact_form_forms') : 0) . ') ORDER BY `title`');
$rows = $wpdb->get_results($query);
$forms = array();
$forms[0] = __('Select a form', WDFMInstance(self::PLUGIN)->prefix);
foreach ( $rows as $row ) {
if( $row->published == 0) {
$row->title .= ' - ' . __('Unpublished', WDFMInstance(self::PLUGIN)->prefix);
}
$forms[$row->id] = $row->title;
}
return $forms;
}
}