Commit inicial - WordPress Análisis de Precios Unitarios

- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2025-11-03 21:04:30 -06:00
commit a22573bf0b
24068 changed files with 4993111 additions and 0 deletions

View File

@@ -0,0 +1,109 @@
<fieldset>
<legend>Logic Options</legend>
<div class="item"><?php
$o = new wpdreamsCustomSelect("term_logic", __('Taxonomy terms checkbox/multiselect connection logic', 'ajax-search-pro'),
array(
'selects' => array(
array('option' => __('At least one selected terms should match', 'ajax-search-pro'), 'value' => 'or'),
array('option' => __('All of the selected terms must match, exclude unselected (default)', 'ajax-search-pro'), 'value' => 'and'),
array('option' => __('All of the selected terms must match EXACTLY, but unselected ones are not excluded.', 'ajax-search-pro'), 'value' => 'andex')
),
'value' => $sd['term_logic']
));
$params[$o->getName()] = $o->getData();
?>
<div id='term_logic_MSG' class="errorMsg hiddend">
<?php echo __("<strong>WARNING:</strong> This is a very strict configuration - only results <strong>matching exactly ALL</strong>
of the selected terms will show up. If you don't get any results, it is probably because of this option.<br>
This logic works best, if you start with all checkboxes <strong>unchecked</strong>.", 'ajax-search-pro'); ?>
</div>
<p class="descMsg">
<?php echo __('This determines the rule how the individual checkbox/multiselect selections should be treated within each taxonomy group.', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item"><?php
$o = new wpdreamsCustomSelect("taxonomy_logic", __('Logic between taxonomy groups', 'ajax-search-pro'),
array(
'selects' => array(
array('option' => 'AND (default)', 'value' => 'and'),
array('option' => 'OR', 'value' => 'or')
),
'value' => $sd['taxonomy_logic']
));
$params[$o->getName()] = $o->getData();
?>
<p class="descMsg">
<?php echo __('This determines the connection between each taxonomy term filter group.', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item">
<?php
$o = new wpdreamsYesNo("frontend_terms_empty", __('Show posts/CPM with empty (missing) taxonomy terms?', 'ajax-search-pro'), $sd['frontend_terms_empty']);
?>
<p class="descMsg">
<?php echo __('This decides what happens if the posts does not have any terms from the selected taxonomies. For example posts with no categories, when using a category filter.', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item">
<?php
$o = new wpdreamsYesNo("frontend_terms_parent_unselect_children", __('Uncheck child terms when the parent term is unchecked', 'ajax-search-pro'), $sd['frontend_terms_parent_unselect_children']);
?>
<p class="descMsg">
<?php echo __('When turned <strong>ON</strong> and using Checkbox filters, the child categories (terms) are automatically unchecked when the parent is unchecked.', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item">
<?php
$o = new wpdreamsYesNo("frontend_terms_hide_children", __('Hide child terms, where the parent checkbox is unchecked?', 'ajax-search-pro'), $sd['frontend_terms_hide_children']);
$params[$o->getName()] = $o->getData();
?>
<p class="descMsg">
<?php echo __('Automatically hides the checkbox options, where the parent terms are unchecked.', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item">
<?php
$o = new wpdreamsYesNo("frontend_terms_ignore_empty", __('Ignore checkbox filters that have nothing selected?', 'ajax-search-pro'), $sd['frontend_terms_ignore_empty']);
?>
<p class="descMsg">
<?php echo __('When turned <strong>ON</strong> and nothing is checked within a checkbox filter - then the search will ignore it completely - instead of excluding everything unchecked.', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item"><?php
$o = new wpdreamsCustomSelect("cf_logic", __('Custom Fields connection Logic', 'ajax-search-pro'),
array(
'selects' => array(
array('option' => 'AND', 'value' => 'AND'),
array('option' => 'OR', 'value' => 'OR')
),
'value' => $sd['cf_logic']
));
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item">
<?php
$o = new wpdreamsYesNo("cf_allow_null", __('Allow results with missing custom fields, when using custom field selectors?', 'ajax-search-pro'), $sd['cf_allow_null']);
?>
<p class="descMsg">
<?php echo __('When using custom field selectors (filters), this option will allow displaying posts/pages/cpm where the given custom field is not defined.
<br>For example: You have a custom field filter on "location" custom field, but some posts does not have the "location" custom field defined. This option
will allow displaying them as results regardless.', 'ajax-search-pro'); ?>
</p>
</div>
</fieldset>
<div class="item">
<?php
$fields = $sd['field_order'];
if (strpos($fields, "general") === false) $fields = "general|" . $fields;
if (strpos($fields, "post_tags") === false) $fields .= "|post_tags";
if (strpos($fields, "date_filters") === false) $fields .= "|date_filters";
if (strpos($fields, "content_type_filters") === false) $fields .= "|content_type_filters";
if (strpos($fields, "search_button") === false) $fields .= "|search_button";
$o = new wpdreamsSortable("field_order", __('Field order', 'ajax-search-pro'),
$fields);
$params[$o->getName()] = $o->getData();
?>
</div>

View File

@@ -0,0 +1,36 @@
<span class="asp_legend_docs">
<a target="_blank" href="https://documentation.ajaxsearchpro.com/frontend-search-settings/content-type-filters"><span class="fa fa-book"></span>
<?php echo __('Documentation', 'ajax-search-pro'); ?>
</a>
</span>
<div class="item">
<?php
$o = new wpdreamsText("content_type_filter_label", __('Content type filter label text', 'ajax-search-pro'), $sd['content_type_filter_label']);
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item">
<?php
$o = new wd_DraggableFields("content_type_filter", __('Content Type filter', 'ajax-search-pro'), array(
"value"=>$sd['content_type_filter'],
"args" => array(
"show_checkboxes" => 1,
"show_display_mode" => 1,
"show_labels" => 1,
"show_required" => 1,
'fields' => array(
'any' => __('Choose One/Select all', 'ajax-search-pro'),
'cpt' => __('Custom post types', 'ajax-search-pro'),
'comments' => __('Comments', 'ajax-search-pro'),
'taxonomies' => __('Taxonomy terms', 'ajax-search-pro'),
'users' => __('Users', 'ajax-search-pro'),
'blogs' => __('Multisite blogs', 'ajax-search-pro'),
'buddypress' => __('BuddyPress content', 'ajax-search-pro'),
'attachments' => __('Attachments', 'ajax-search-pro')
),
'checked' => array()
)
));
$params[$o->getName()] = $o->getData();
?>
</div>

View File

@@ -0,0 +1,830 @@
<span class="asp_legend_docs">
<a target="_blank" href="https://documentation.ajaxsearchpro.com/frontend-search-settings/custom-field-selectors"><span class="fa fa-book"></span>
<?php echo __('Documentation', 'ajax-search-pro'); ?>
</a>
</span>
<?php
$cf_tooltip_msg = sprintf( __('One item per line. Use the <strong>{get_values}</strong> variable to get custom field values automatically.
For more info see the
<a target="_blank" href="%s">documentation</a>.', 'ajax-search-pro'), 'https://documentation.ajaxsearchpro.com/frontend-search-settings/custom-field-selectors' );
?>
<script>
jQuery(function($) {
var sortableCont = $("#csf_sortable");
var $deleteIcon = $("<a class='deleteIcon'></a>");
var $editIcon = $("<a class='editIcon'></a>");
var resetValues = {};
var $current = null;
//$('#asp_edit_field').fadeOut(0);
// Store defaults
$('#asp_new_field input, #asp_new_field select, #asp_new_field textarea').each(function(){
if ( $(this).is(':checkbox')) {
resetValues[$(this).attr('name')] = $(this).is(':checked');
} else {
resetValues[$(this).attr('name')] = $(this).val();
}
});
// Fields for checking
var fields = ['asp_f_title', 'asp_f_field'];
function checkEmpty(parent) {
var empty = false;
$(fields).each(function () {
if ($(parent + ' *[name="' + this.toString() + '"]').val() == '') {
$(parent + ' *[name="' + this.toString() + '"]').addClass('missing');
empty = true;
}
});
return empty;
}
$('#asp_new_field, #asp_edit_field').click(function(e){
if ($(e.target).attr('name') == 'add' || $(e.target).attr('name') == 'save') return;
$(fields).each(function () {
$('#asp_new_field *[name="' + this.toString() + '"]').removeClass('missing');
$('#asp_edit_field *[name="' + this.toString() + '"]').removeClass('missing');
});
});
function initDatePickers() {
if (typeof $('.asp_f_datepicker_value').datepicker != "undefined") {
$('.asp_f_datepicker_value').datepicker("destroy");
$('.asp_f_datepicker_value').each(function(){
$(this).datepicker({
dateFormat : $('.asp_f_datepicker_format', $(this).parent()).val(),
changeMonth: true,
changeYear: true
});
if ( $(this).val() == "" )
$('.asp_f_datepicker_value').datepicker( "setDate", "+0" );
});
} else {
$('.asp_f_datepicker_value').each(function(){
$(this).datepicker({
dateFormat : $('.asp_f_datepicker_format', $(this).parent()).val(),
changeMonth: true,
changeYear: true
});
});
}
$('.asp_f_datepicker_defval').each(function(){
if ( $(this).val() == "current" || $(this).val() == "none" )
$('.asp_f_datepicker_value', $(this).parent() ).attr("disabled", true);
else
$('.asp_f_datepicker_value', $(this).parent() ).removeAttr("disabled");
if ( $(this).val() == "relative" ) {
$('.asp_f_datepicker_from', $(this).parent() ).removeClass("hiddend");
$('.asp_f_datepicker_value', $(this).parent() ).addClass("hiddend");
} else {
$('.asp_f_datepicker_from', $(this).parent() ).addClass("hiddend");
$('.asp_f_datepicker_value', $(this).parent() ).removeClass("hiddend");
}
});
}
function resetNew() {
$('#asp_new_field input, #asp_new_field select, #asp_new_field textarea').each(function(){
if ( $(this).is(':checkbox')) {
$(this).prop('checked', resetValues[$(this).attr('name')]);
} else {
$(this).val(resetValues[$(this).attr('name')]);
}
});
$('#asp_new_field select[name="asp_f_type"]').trigger('change');
$('#asp_new_field select[name="asp_f_source"]').trigger('focusin');
$('#asp_new_field elect[name="asp_f_source"]').trigger('change');
initDatePickers();
}
function resetEdit() {
$('#asp_edit_field input, #asp_edit_field select, #asp_edit_field textarea').each(function(){
$(this).val(resetValues[$(this).attr('name')]);
if ( $(this).is(':checkbox')) {
$(this).prop('checked', resetValues[$(this).attr('name')]);
} else {
$(this).val(resetValues[$(this).attr('name')]);
}
});
$('#asp_edit_field select[name="asp_f_type"]').trigger('change');
$('#asp_edit_field select[name="asp_f_source"]').trigger('focusin');
$('#asp_edit_field select[name="asp_f_source"]').trigger('change');
initDatePickers();
}
/* Type change */
$('select[name="asp_f_type"]').on('change', function(){
var id = $(this).parent().parent()[0].id;
var val = $(this).val();
$('#' + id + ' .asp_f_type').addClass('hiddend');
$('#' + id + ' .asp_f_' + $(this).val()).removeClass('hiddend');
if (val == 'slider') {
$($('#' + id + ' .asp_f_operator optgroup')[1]).addClass('hiddend');
$('#' + id + ' .asp_f_operator select').val('eq');
} else {
$($('#' + id + ' .asp_f_operator optgroup')[1]).removeClass('hiddend');
}
if (val == 'checkboxes') {
$('#' + id + ' .asp_f_operator select').val('like');
}
if (val == 'range' || val == 'number_range' || val == 'datepicker') {
$('#' + id + ' .asp_f_operator').addClass('hiddend');
} else {
$('#' + id + ' .asp_f_operator').removeClass('hiddend');
}
if ( val == 'hidden' || val == 'slider' || val == 'range' ) {
$('#' + id + ' .asp_f_required').addClass('hiddend');
} else {
$('#' + id + ' .asp_f_required').removeClass('hiddend');
}
});
/* Reset it on page load */
$('select[name="asp_f_type"]').change();
// Source change
$('select[name="asp_f_source"]').on('focusin', function(){
$(this).data('val', $(this).val());
});
$('select[name="asp_f_source"]').on('change', function(){
var $parent = $(this).closest('.asp_ffield_container');
var o = JSON.parse(WD_Helpers.Base64.decode($("input.wd_args", $parent).val()));
var prev = $(this).data('val');
var current = $(this).val();
if ( $(this).val() == 'usermeta' ) {
o.usermeta = 1;
} else {
o.usermeta = 0;
}
$("input.wd_args", $parent).val( WD_Helpers.Base64.encode(JSON.stringify(o)) );
// Only trigger if really changes
if ( current != prev )
$("input.wd_cf_search", $parent).trigger('keyup');
});
$('select[name="asp_f_source"]').trigger('focusin');
$('select[name="asp_f_source"]').trigger('change');
/* Sortable */
sortableCont.sortable({
}, {
update: function (event, ui) {
var parent = $('#asp_new_field').parent();
var items = $('#csf_sortable li');
var hidden = $('input[name=custom_field_items]', parent);
var val = "";
items.each(function () {
val += "|" + $(this).attr('custom-data');
});
val = val.substring(1);
hidden.val(val);
}
}).disableSelection();
// Add the items to the sortable on initialisation
var fields_val = $('input[name=custom_field_items]').val();
if (typeof(fields_val) != 'undefined' && fields_val != '') {
var items = fields_val.split('|');
$.each(items, function(key, value){
vals = JSON.parse(WD_Helpers.Base64.decode(value));
var $li = $("<li class='ui-state-default'/>").html(vals.asp_f_title + "<a class='deleteIcon'></a><a class='editIcon'></a>");
$li.attr("custom-data", value);
sortableCont.append($li);
});
sortableCont.sortable("refresh");
sortableCont.sortable('option', 'update').call(sortableCont);
}
// Add new item
$('#asp_new_field button[name=add]').click(function(){
var data = {};
if (checkEmpty('#asp_new_field') == true) return;
$('#asp_new_field input, #asp_new_field select, #asp_new_field textarea').each(function(){
if ($(this).parent().hasClass('hiddend')) return;
if ($(this).attr('type') == 'checkbox') {
if ($(this).prop('checked') == true)
data[$(this).attr('name')] = 'asp_checked';
else
data[$(this).attr('name')] = 'asp_unchecked';
} else {
data[$(this).attr('name')] = $(this).val();
}
});
var $li = $("<li class='ui-state-default'/>")
.html(data.asp_f_title + "<a class='deleteIcon'></a><a class='editIcon'></a>");
$li.attr("custom-data", WD_Helpers.Base64.encode(JSON.stringify(data)));
sortableCont.append($li);
sortableCont.sortable("refresh");
sortableCont.sortable('option', 'update').call(sortableCont);
initDatePickers();
$('#asp_new_field').fadeOut(10);
resetNew();
$('#asp_new_field').fadeIn();
});
// Remove item
$('#csf_sortable').on('click', 'li a.deleteIcon', function(){
$(this).parent().remove();
sortableCont.sortable("refresh");
sortableCont.sortable('option', 'update').call(sortableCont);
$('#asp_edit_field button[name=back]').click();
initDatePickers();
});
// Edit item
$('#csf_sortable').on('click', 'li a.editIcon', function(e){
resetEdit();
$('#asp_new_field').fadeOut(0);
$('#asp_edit_field').fadeIn();
$current = $(e.target).parent();
var data = JSON.parse(WD_Helpers.Base64.decode($current.attr("custom-data")));
$('#asp_edit_title').text(data.asp_f_title);
$.each(data, function(key, val){
if (val == 'asp_checked') {
$('#asp_edit_field *[name=' + key + ']').prop('checked', true);
} else if (val == 'asp_unchecked') {
$('#asp_edit_field *[name=' + key + ']').prop('checked', false);
} else {
$('#asp_edit_field *[name=' + key + ']').val(val);
}
if (key == 'asp_f_type')
$('#asp_edit_field select[name=asp_f_type]').change();
});
$('#asp_edit_field input[name=asp_f_dropdown_search]').change();
$('#asp_edit_field select[name="asp_f_source"]').trigger('focusin');
$('#asp_edit_field select[name="asp_f_source"]').trigger('change');
$('#asp_edit_field input[name="asp_f_required"]').trigger('change');
initDatePickers();
});
// Back to new
$('#asp_edit_field button[name=back]').click(function(){
resetNew();
$('#asp_edit_field').fadeOut(0);
$('#asp_new_field').fadeIn();
});
// Save modifications
$('#asp_edit_field button[name=save]').click(function(){
if (checkEmpty('#asp_edit_field') == true) return;
var data = {};
$('#asp_edit_field input, #asp_edit_field select, #asp_edit_field textarea').each(function(){
if ($(this).parent().hasClass('hiddend')) return;
if ($(this).attr('type') == 'checkbox') {
if ($(this).prop('checked') == true)
data[$(this).attr('name')] = 'asp_checked';
else
data[$(this).attr('name')] = 'asp_unchecked';
} else {
data[$(this).attr('name')] = $(this).val();
}
});
$current.attr("custom-data", WD_Helpers.Base64.encode(JSON.stringify(data)));
sortableCont.sortable("refresh");
sortableCont.sortable('option', 'update').call(sortableCont);
$('#asp_edit_field button[name=back]').click();
});
// Reset Values
$('#asp_new_field button[name=reset]').click(function(){
resetNew();
});
initDatePickers();
$('.asp_f_datepicker_format').on("keyup", function(){
initDatePickers();
});
$('.asp_f_datepicker_defval').on("change", function(){
initDatePickers();
});
$('.asp_f_datepicker_store_format').on("change", function(){
$(".greenMsg", $(this).parent()).addClass("hiddend");
$(".greenMsg.msg_" + $(this).val(), $(this).parent()).removeClass("hiddend");
});
$('.asp_f_datepicker_store_format').change();
$('input[name=asp_f_dropdown_search]').change(function(){
if ( $(this).prop('checked') )
$('input[name=asp_f_dropdown_search_text]', $(this).parent()).removeAttr('disabled');
else
$('input[name=asp_f_dropdown_search_text]', $(this).parent()).attr('disabled', true);
});
$('input[name=asp_f_dropdown_search]').change();
$('input[name=asp_f_required]').change(function(){
if ( $(this).prop('checked') )
$(this).closest('fieldset').find('input[name=asp_f_invalid_input_text]').closest('label').removeClass('disabled');
else
$(this).closest('fieldset').find('input[name=asp_f_invalid_input_text]').closest('label').addClass('disabled');
});
$('input[name=asp_f_required]').change();
});
</script>
<style>
.asp_f_datepicker_from_days,
.asp_f_datepicker_from_months {
width: 34px !important;
margin: 0 1px !important;
}
.asp_f_datepicker_value {
margin-bottom: 10px !important;
}
.asp_f_datepicker_from {
display: inline;
padding: 5px 10px 50px 0px !important;
margin: 0 !important;
position: relative;
}
.asp_f_datepicker_from .descMsg {
position: absolute;
}
input[name=asp_f_dropdown_search_text] {
width: 126px !important;
}
.asp_ffield_container {
display: flex;
justify-content: flex-end;
}
.asp_ffield_container>.wd_cf_search {
margin: 0;
}
</style>
<div class="wpd-60-pc customContent">
<fieldset class="wpd-text-right" id="asp_new_field">
<legend><?php echo __('Add new item', 'ajax-search-pro'); ?></legend>
<div class='one-item'>
<label for='asp_f_title'><?php echo __('Title label', 'ajax-search-pro'); ?></label>
<input type='text' placeholder="<?php echo esc_attr__('Title here..', 'ajax-search-pro'); ?>" name='asp_f_title'/>
</div>
<div class='one-item'>
<label for='asp_f_show_title'><?php echo __('Show the label on the frontend?', 'ajax-search-pro'); ?></label>
<input type='checkbox' name='asp_f_show_title' value="yes" checked/>
</div>
<div class='one-item'>
<label for='asp_f_field'><?php echo __('Custom Field', 'ajax-search-pro'); ?></label>
<div class="asp_ffield_container">
<?php new wd_CFSearchCallBack('asp_f_field', '', array('value'=>'', 'args'=>array('controls_position' => 'left', 'class'=>'wpd-text-right'))); ?>
<select name="asp_f_source">
<option value="postmeta"><?php echo __('Post meta', 'ajax-search-pro'); ?></option>
<option value="usermeta"><?php echo __('User meta', 'ajax-search-pro'); ?></option>
</select>
</div>
</div>
<div class='one-item'>
<label for='asp_f_type'><?php echo __('Type', 'ajax-search-pro'); ?></label>
<select name='asp_f_type'/>
<option value="radio"><?php echo __('Radio', 'ajax-search-pro'); ?></option>
<option value="dropdown"><?php echo __('Dropdown', 'ajax-search-pro'); ?></option>
<option value="checkboxes"><?php echo __('Checkboxes', 'ajax-search-pro'); ?></option>
<option value="hidden"><?php echo __('Hidden', 'ajax-search-pro'); ?></option>
<option value="text"><?php echo __('Text', 'ajax-search-pro'); ?></option>
<option value="datepicker"><?php echo __('DatePicker', 'ajax-search-pro'); ?></option>
<option value="number_range"><?php echo __('Number Range', 'ajax-search-pro'); ?></option>
<option value="slider"><?php echo __('Slider', 'ajax-search-pro'); ?></option>
<option value="range"><?php echo __('Range Slider', 'ajax-search-pro'); ?></option>
</select>
</div>
<div class='one-item asp_f_radio asp_f_type'>
<label for='asp_f_radio_value'><?php echo __('Radio values', 'ajax-search-pro'); ?></label>
<textarea name='asp_f_radio_value'/>
||Any value**
sample_value1||Sample Label 1
sample_value2||Sample Label 2
sample_value3||Sample Label 3</textarea>
<p class="descMsg"><?php echo $cf_tooltip_msg; ?></p>
</div>
<div class='one-item asp_f_dropdown asp_f_type hiddend'>
<label for='asp_f_dropdown_multi'><?php echo __('Multiselect?', 'ajax-search-pro'); ?></label>
<input type='checkbox' name='asp_f_dropdown_multi' value="yes" /><br><br>
<label for='asp_f_dropdown_search'><?php echo __('Searchable?', 'ajax-search-pro'); ?></label>
<input type='checkbox' name='asp_f_dropdown_search' value="yes" />
<label for='asp_f_dropdown_search_text'><?php echo __('placeholder', 'ajax-search-pro'); ?></label>
<input type='text' name='asp_f_dropdown_search_text' value="Select options.." disabled/><br><br>
<label for='asp_f_dropdown_value'><?php echo __('Dropdown values', 'ajax-search-pro'); ?></label>
<textarea name='asp_f_dropdown_value'/>
||Any value**
sample_value1||Sample Label 1
sample_value2||Sample Label 2
sample_value3||Sample Label 3</textarea>
<p class="descMsg"><?php echo $cf_tooltip_msg; ?></p>
<label for='asp_f_dropdown_logic'><?php echo __('Drop-down values logic', 'ajax-search-pro'); ?></label>
<select name='asp_f_dropdown_logic'/>
<option value="OR">OR</option>
<option value="AND">AND</option>
<option value="ANDSE">AND in separate fields</option>
</select>
</div>
<div class='one-item asp_f_checkboxes asp_f_type hiddend'>
<label for='asp_f_checkboxes_value'><?php echo __('Checkbox values', 'ajax-search-pro'); ?></label>
<textarea name='asp_f_checkboxes_value'/>
||Select all**
sample_value1||Sample Label 1**
sample_value2||Sample Label 2
sample_value3||Sample Label 3**</textarea>
<p class="descMsg"><?php echo $cf_tooltip_msg; ?></p>
<br><br>
<label for='asp_f_checkboxes_logic'><?php echo __('Checkbox logic', 'ajax-search-pro'); ?></label>
<select name='asp_f_checkboxes_logic'/>
<option value="OR">OR</option>
<option value="AND">AND</option>
</select>
</div>
<div class='one-item asp_f_hidden asp_f_type'>
<label for='asp_f_hidden_value'><?php echo __('Hidden value', 'ajax-search-pro'); ?></label>
<textarea name='asp_f_hidden_value'/></textarea>
<p class="descMsg"><?php echo __('An invisible element. Used for filtering every time without user input.', 'ajax-search-pro'); ?></p>
</div>
<div class='one-item asp_f_text asp_f_type'>
<label for='asp_f_text_value'><?php echo __('Text input', 'ajax-search-pro'); ?></label>
<textarea name='asp_f_text_value'/></textarea>
<p class="descMsg"><?php echo __('A text input element.', 'ajax-search-pro'); ?></p>
</div>
<div class='one-item asp_f_datepicker asp_f_type'>
<label for='asp_f_datepicker_store_format'><?php echo __('Date storage format', 'ajax-search-pro'); ?></label>
<select class="asp_f_datepicker_store_format" name="asp_f_datepicker_store_format">
<option value="datetime"><?php echo __('MySQL DateTime/ACF datetime field', 'ajax-search-pro'); ?></option>
<option value="acf"><?php echo __('ACF date ', 'ajax-search-pro'); ?></option>
<option value="timestamp"><?php echo __('Timestamp', 'ajax-search-pro'); ?></option>
</select>
<p class="msg_acf"></p>
<p class="greenMsg msg_datetime">
<?php echo __('NOTICE: The MySql datetime format is <strong>Y-m-d H:i:s</strong>, for example: 2001-03-10 17:16:18', 'ajax-search-pro'); ?>
</p>
<p class="greenMsg msg_timestamp">
<?php echo __('NOTICE: The timestamp is a numeric format, for example <strong>1465111713</strong>. This translates to: 06/05/2016 @ 7:28am (UTC)', 'ajax-search-pro'); ?>
</p>
<div class="one-item-sub">
<label for='asp_f_datepicker_placeholder'>
<?php echo __('Placeholder text', 'ajax-search-pro'); ?>
</label><input style="width:120px;" name='asp_f_datepicker_placeholder' class="asp_f_datepicker_placeholder" value="Choose date"/>
</div>
<div class="one-item-sub">
<label for='asp_f_datepicker_format'>
<?php echo __('Display format', 'ajax-search-pro'); ?>
</label><input style="width:120px;" name='asp_f_datepicker_format' class="asp_f_datepicker_format" value="dd/mm/yy"/>
<p class="descMsg">
<?php echo sprintf( __('dd/mm/yy is the most used format, <a href="%s" target="_blank">list of accepted params</a>', 'ajax-search-pro'), 'http://api.jqueryui.com/datepicker/#utility-formatDate' ); ?>
</p>
</div>
<label for='asp_f_datepicker_value'><?php echo __('Default Value', 'ajax-search-pro'); ?></label><br>
<select class="asp_f_datepicker_defval" name="asp_f_datepicker_defval">
<option value="current"><?php echo __('Current date', 'ajax-search-pro'); ?></option>
<option value="none"><?php echo __('Empty (no date)', 'ajax-search-pro'); ?></option>
<option value="relative"><?php echo __('Relative date', 'ajax-search-pro'); ?></option>
<option value="selected"><?php echo __('Select date', 'ajax-search-pro'); ?></option>
</select>
<input class="asp_f_datepicker_value" name='asp_f_datepicker_value' value=""/>
<fieldset class="asp_f_datepicker_from hiddend">
<input class="asp_f_datepicker_from_days" name='asp_f_datepicker_from_days' value="0"/> days and
<input class="asp_f_datepicker_from_months" name='asp_f_datepicker_from_months' value="0"/> months from now.
<p class="descMsg"><?php echo __('Use <strong>negative values</strong> to indicate date before the current.', 'ajax-search-pro'); ?></p>
</fieldset>
<br>
<label for='asp_f_datepicker_operator'><?php echo __('Show results..', 'ajax-search-pro'); ?></label>
<select name='asp_f_datepicker_operator'/>
<option value="before"><?php echo __('..before the date (to date)', 'ajax-search-pro'); ?></option>
<option value="before_inc"><?php echo __('..before the date (to date) inclusive', 'ajax-search-pro'); ?></option>
<option value="after"><?php echo __('..after the date (from date)', 'ajax-search-pro'); ?></option>
<option value="after_inc"><?php echo __('..after the date (from date) inclusive', 'ajax-search-pro'); ?></option>
<option value="match"><?php echo __('..matching the date', 'ajax-search-pro'); ?></option>
<option value="nomatch"><?php echo __('..not matching the date', 'ajax-search-pro'); ?></option>
</select>
</div>
<div style='line-height: 33px;' class='one-item asp_f_number_range asp_f_type hiddend'>
<label for='asp_f_number_range_from'><?php echo __('Min/Max Range', 'ajax-search-pro'); ?></label>
<input class="ninedigit" type='number' value="" name='asp_f_number_range_from'/> - <input class="ninedigit" value="" type='number' name='asp_f_number_range_to'/><br />
<p class="descMsg"><?php echo __('Leave them empty to get the min/max range automatically.', 'ajax-search-pro'); ?></p>
<label for='asp_f_number_range_default1'><?php echo __('Input 1 default', 'ajax-search-pro'); ?></label>
<input class="ninedigit" type='number' value="" name='asp_f_number_range_default1'/>
<label for='asp_f_number_range_default2'><?php echo __('Input 2 default', 'ajax-search-pro'); ?></label>
<input class="ninedigit" type='number' value="" name='asp_f_number_range_default2'/>
<p class="descMsg"><?php echo __('When empty, the placeholder texts are displayed.', 'ajax-search-pro'); ?></p>
<label for='asp_f_number_range_placeholder1'><?php echo __('Placeholder Text #1', 'ajax-search-pro'); ?></label>
<input type='text' value="From" name='asp_f_number_range_placeholder1'/>
<label for='asp_f_number_range_placeholder2'><?php echo __('Placeholder Text #2', 'ajax-search-pro'); ?></label>
<input type='text' value="To" name='asp_f_number_range_placeholder2'/>
<label for='asp_f_number_range_t_separator'><?php echo __('Thousands separator', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value=" " name='asp_f_number_range_t_separator'/>
</div>
<div style='line-height: 33px;' class='one-item asp_f_slider asp_f_type hiddend'>
<label for='asp_f_slider_from'><?php echo __('Slider range', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="1" name='asp_f_slider_from'/> - <input class="threedigit" value="1000" type='text' name='asp_f_slider_to'/><br />
<p class="descMsg"><?php echo __('Leave them empty to get the values automatically.', 'ajax-search-pro'); ?></p>
<label for='asp_f_slider_step'><?php echo __('Step', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="1" name='asp_f_slider_step'/><br />
<label for='asp_f_slider_prefix'><?php echo __('Prefix', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="$" name='asp_f_slider_prefix'/>
<label for='asp_f_slider_suffix'><?php echo __('Suffix', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value=",-" name='asp_f_slider_suffix'/><br />
<label for='asp_f_slider_default'><?php echo __('Default Value', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="500" name='asp_f_slider_default'/><br />
<p class="descMsg"><?php echo __('Leave it empty to set the handle automatically.', 'ajax-search-pro'); ?></p>
<label for='asp_f_slider_t_separator'><?php echo __('Thousands separator', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value=" " name='asp_f_slider_t_separator'/>
<label for='asp_f_slider_decimals'><?php echo __('Decimal places', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="0" name='asp_f_slider_decimals'/>
</div>
<div style='line-height: 33px;' class='one-item asp_f_range asp_f_type hiddend'>
<label for='asp_f_range_from'><?php echo __('Slider range', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="1" name='asp_f_range_from'/> - <input class="threedigit" value="1000" type='text' name='asp_f_range_to'/><br />
<p class="descMsg"><?php echo __('Leave them empty to get the values automatically.', 'ajax-search-pro'); ?></p>
<label for='asp_f_slider_step'><?php echo __('Step', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="1" name='asp_f_range_step'/><br />
<label for='asp_f_slider_prefix'><?php echo __('Prefix', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="$" name='asp_f_range_prefix'/>
<label for='asp_f_slider_suffix'><?php echo __('Suffix', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value=",-" name='asp_f_range_suffix'/><br />
<label for='asp_f_range_default1'><?php echo __('Track 1 default', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="" name='asp_f_range_default1'/>
<label for='asp_f_range_default2'><?php echo __('Track 2 default', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="" name='asp_f_range_default2'/>
<p class="descMsg"><?php echo __('Leave them empty to set the handles automatically.', 'ajax-search-pro'); ?></p>
<label for='asp_f_range_t_separator'><?php echo __('Thousands separator', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value=" " name='asp_f_range_t_separator'/>
<label for='asp_f_range_decimals'><?php echo __('Decimal places', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="0" name='asp_f_range_decimals'/>
</div>
<div class='one-item asp_f_operator'>
<label for='asp_f_operator'><?php echo __('Operator', 'ajax-search-pro'); ?></label>
<select name='asp_f_operator'/>
<optgroup label="Numeric operators">
<option value="eq">EQUALS</option>
<option value="neq">NOT EQUALS</option>
<option value="lt">LESS THEN</option>
<option value="let">LESS OR EQUALS THEN</option>
<option value="gt">MORE THEN</option>
<option value="get">MORE OR EQUALS THEN</option>
</optgroup>
<optgroup label="String operators">
<option value="elike">EXACTLY LIKE</option>
<option value="like" selected="selected">LIKE</option>
<option value="not elike">NOT EXACTLY LIKE</option>
<option value="not like">NOT LIKE</option>
</optgroup>
</select>
<p class="descMsg"><?php echo __('Use the numeric operators for numeric values and string operators for text values', 'ajax-search-pro'); ?></p>
</div>
<div class='one-item asp_f_required'>
<label for='asp_f_required'><?php echo __('Required?', 'ajax-search-pro'); ?>
<input type="checkbox" name="asp_f_required">
</label>
<label for='asp_f_required'><?php echo __('..text: ', 'ajax-search-pro'); ?>
<input type='text' value="This field is required!" name='asp_f_invalid_input_text'/>
</label>
<p class="descMsg"><?php echo __('The plugin will not trigger search until the required field is set.', 'ajax-search-pro'); ?></p>
</div>
<div class='one-item'>
<button type='button' style='margin-right: 20px;' name='reset'><?php echo __('Reset', 'ajax-search-pro'); ?></button>
<button type='button' name='add'><?php echo __('Add!', 'ajax-search-pro'); ?></button>
</div>
</fieldset>
<fieldset class="wpd-text-right" style="display:none;" id="asp_edit_field">
<legend>Edit: <strong><span id="asp_edit_title"></span></strong></legend>
<div class='one-item'>
<label for='asp_f_title'><?php echo __('Title label', 'ajax-search-pro'); ?></label>
<input type='text' placeholder="<?php echo esc_attr__('Title here..', 'ajax-search-pro'); ?>" name='asp_f_title'/>
</div>
<div class='one-item'>
<label for='asp_f_show_title'><?php echo __('Show the label on the frontend?', 'ajax-search-pro'); ?></label>
<input type='checkbox' name='asp_f_show_title' value="yes" checked/>
</div>
<div class='one-item'>
<label for='asp_f_field'><?php echo __('Custom Field', 'ajax-search-pro'); ?></label>
<div class="asp_ffield_container">
<?php new wd_CFSearchCallBack('asp_f_field', '', array('value'=>'', 'args'=>array('controls_position' => 'left', 'class'=>'wpd-text-right'))); ?>
<select name="asp_f_source">
<option value="postmeta"><?php echo __('Post meta', 'ajax-search-pro'); ?></option>
<option value="usermeta"><?php echo __('User meta', 'ajax-search-pro'); ?></option>
</select>
</div>
</div>
<div class='one-item'>
<label for='asp_f_type'><?php echo __('Type', 'ajax-search-pro'); ?></label>
<select name='asp_f_type'/>
<option value="radio"><?php echo __('Radio', 'ajax-search-pro'); ?></option>
<option value="dropdown"><?php echo __('Dropdown', 'ajax-search-pro'); ?></option>
<option value="checkboxes"><?php echo __('Checkboxes', 'ajax-search-pro'); ?></option>
<option value="hidden"><?php echo __('Hidden', 'ajax-search-pro'); ?></option>
<option value="text"><?php echo __('Text', 'ajax-search-pro'); ?></option>
<option value="datepicker"><?php echo __('DatePicker', 'ajax-search-pro'); ?></option>
<option value="number_range"><?php echo __('Number Range', 'ajax-search-pro'); ?></option>
<option value="slider"><?php echo __('Slider', 'ajax-search-pro'); ?></option>
<option value="range"><?php echo __('Range Slider', 'ajax-search-pro'); ?></option>
</select>
</div>
<div class='one-item asp_f_radio asp_f_type'>
<label for='asp_f_radio_value'><?php echo __('Radio values', 'ajax-search-pro'); ?></label>
<textarea name='asp_f_radio_value'/></textarea>
<p class="descMsg"><?php echo $cf_tooltip_msg; ?></p>
</div>
<div class='one-item asp_f_dropdown asp_f_type hiddend'>
<label for='asp_f_dropdown_multi'><?php echo __('Multiselect?', 'ajax-search-pro'); ?></label>
<input type='checkbox' name='asp_f_dropdown_multi' value="yes" /><br><br>
<label for='asp_f_dropdown_search'><?php echo __('Searchable?', 'ajax-search-pro'); ?></label>
<input type='checkbox' name='asp_f_dropdown_search' value="yes" />
<label for='asp_f_dropdown_search_text'><?php echo __('placeholder', 'ajax-search-pro'); ?></label>
<input type='text' name='asp_f_dropdown_search_text' value="Select options.." disabled/><br><br>
<label for='asp_f_dropdown_value'><?php echo __('Dropdown values', 'ajax-search-pro'); ?></label>
<textarea name='asp_f_dropdown_value'/></textarea>
<p class="descMsg"><?php echo $cf_tooltip_msg; ?></p>
<label for='asp_f_dropdown_logic'><?php echo __('Drop-down values logic', 'ajax-search-pro'); ?></label>
<select name='asp_f_dropdown_logic'/>
<option value="OR">OR</option>
<option value="AND">AND</option>
<option value="ANDSE">AND in separate fields</option>
</select>
</div>
<div class='one-item asp_f_checkboxes asp_f_type hiddend'>
<label for='asp_f_checkboxes_value'><?php echo __('Checkbox values', 'ajax-search-pro'); ?></label>
<textarea name='asp_f_checkboxes_value'/></textarea><br><br>
<p class="descMsg"><?php echo $cf_tooltip_msg; ?></p>
<label for='asp_f_checkboxes_logic'><?php echo __('Checkbox logic', 'ajax-search-pro'); ?></label>
<select name='asp_f_checkboxes_logic'/>
<option value="OR">OR</option>
<option value="AND">AND</option>
</select>
</div>
<div class='one-item asp_f_hidden asp_f_type'>
<label for='asp_f_hidden_value'><?php echo __('Hidden value', 'ajax-search-pro'); ?></label>
<textarea name='asp_f_hidden_value'/></textarea>
<p class="descMsg"><?php echo __('An invisible element. Used for filtering every time without user input.', 'ajax-search-pro'); ?></p>
</div>
<div class='one-item asp_f_text asp_f_type'>
<label for='asp_f_text_value'><?php echo __('Text input', 'ajax-search-pro'); ?></label>
<textarea name='asp_f_text_value'/></textarea>
<p class="descMsg"><?php echo __('A text input element.', 'ajax-search-pro'); ?></p>
</div>
<div class='one-item asp_f_datepicker asp_f_type'>
<label for='asp_f_datepicker_store_format'><?php echo __('Date storage format', 'ajax-search-pro'); ?></label>
<select class="asp_f_datepicker_store_format" name="asp_f_datepicker_store_format">
<option value="datetime"><?php echo __('MySQL DateTime/ACF datetime field', 'ajax-search-pro'); ?></option>
<option value="acf"><?php echo __('ACF date field', 'ajax-search-pro'); ?></option>
<option value="timestamp"><?php echo __('Timestamp', 'ajax-search-pro'); ?></option>
</select>
<p class="msg_acf"></p>
<p class="greenMsg msg_datetime">
<?php echo __('NOTICE: The MySql datetime format is <strong>Y-m-d H:i:s</strong>, for example: 2001-03-10 17:16:18', 'ajax-search-pro'); ?>
</p>
<p class="greenMsg msg_timestamp">
<?php echo __('NOTICE: The timestamp is a numeric format, for example <strong>1465111713</strong>. This translates to: 06/05/2016 @ 7:28am (UTC)', 'ajax-search-pro'); ?>
</p>
<div class="one-item-sub">
<label for='asp_f_datepicker_placeholder'>
<?php echo __('Placeholder text', 'ajax-search-pro'); ?>
</label><input style="width:120px;" name='asp_f_datepicker_placeholder' class="asp_f_datepicker_placeholder" value="Choose date"/>
</div>
<div class="one-item-sub">
<label for='asp_f_datepicker_format'>
<?php echo __('Display format', 'ajax-search-pro'); ?>
</label><input style="width:120px;" name='asp_f_datepicker_format' class="asp_f_datepicker_format" value="dd/mm/yy"/>
<p class="descMsg">
<?php echo sprintf( __('dd/mm/yy is the most used format, <a href="%s" target="_blank">list of accepted params</a>', 'ajax-search-pro'), 'http://api.jqueryui.com/datepicker/#utility-formatDate' ); ?>
</p>
</div>
<label for='asp_f_datepicker_value'><?php echo __('Default Value', 'ajax-search-pro'); ?></label><br>
<select class="asp_f_datepicker_defval" name="asp_f_datepicker_defval">
<option value="current"><?php echo __('Current date', 'ajax-search-pro'); ?></option>
<option value="none"><?php echo __('Empty (no date)', 'ajax-search-pro'); ?></option>
<option value="relative"><?php echo __('Relative date', 'ajax-search-pro'); ?></option>
<option value="selected"><?php echo __('Select date', 'ajax-search-pro'); ?></option>
</select>
<input class="asp_f_datepicker_value" name='asp_f_datepicker_value' value=""/>
<fieldset class="asp_f_datepicker_from hiddend">
<input class="asp_f_datepicker_from_days" name='asp_f_datepicker_from_days' value="0"/> days and
<input class="asp_f_datepicker_from_months" name='asp_f_datepicker_from_months' value="0"/> months from now.
<p class="descMsg"><?php echo __('Use <strong>negative values</strong> to indicate date before the current.', 'ajax-search-pro'); ?></p>
</fieldset>
<br>
<label for='asp_f_datepicker_operator'><?php echo __('Show results..', 'ajax-search-pro'); ?></label>
<select name='asp_f_datepicker_operator'/>
<option value="before"><?php echo __('..before the date (to date)', 'ajax-search-pro'); ?></option>
<option value="before_inc"><?php echo __('..before the date (to date) inclusive', 'ajax-search-pro'); ?></option>
<option value="after"><?php echo __('..after the date (from date)', 'ajax-search-pro'); ?></option>
<option value="after_inc"><?php echo __('..after the date (from date) inclusive', 'ajax-search-pro'); ?></option>
<option value="match"><?php echo __('..matching the date', 'ajax-search-pro'); ?></option>
<option value="nomatch"><?php echo __('..not matching the date', 'ajax-search-pro'); ?></option>
</select>
</div>
<div style='line-height: 33px;' class='one-item asp_f_number_range asp_f_type hiddend'>
<label for='asp_f_number_range_from'><?php echo __('Min/Max Range', 'ajax-search-pro'); ?></label>
<input class="ninedigit" type='number' value="" name='asp_f_number_range_from'/> - <input class="ninedigit" value="" type='number' name='asp_f_number_range_to'/><br />
<p class="descMsg"><?php echo __('Leave them empty to get the min/max range automatically.', 'ajax-search-pro'); ?></p>
<label for='asp_f_number_range_default1'><?php echo __('Input 1 default', 'ajax-search-pro'); ?></label>
<input class="ninedigit" type='number' value="" name='asp_f_number_range_default1'/>
<label for='asp_f_number_range_default2'><?php echo __('Input 2 default', 'ajax-search-pro'); ?></label>
<input class="ninedigit" type='number' value="" name='asp_f_number_range_default2'/>
<p class="descMsg"><?php echo __('When empty, the placeholder texts are displayed.', 'ajax-search-pro'); ?></p>
<label for='asp_f_number_range_placeholder1'><?php echo __('Placeholder Text #1', 'ajax-search-pro'); ?></label>
<input type='text' value="From" name='asp_f_number_range_placeholder1'/>
<label for='asp_f_number_range_placeholder2'><?php echo __('Placeholder Text #2', 'ajax-search-pro'); ?></label>
<input type='text' value="To" name='asp_f_number_range_placeholder2'/>
<label for='asp_f_number_range_t_separator'><?php echo __('Thousands separator', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value=" " name='asp_f_number_range_t_separator'/>
</div>
<div style='line-height: 33px;' class='one-item asp_f_slider asp_f_type hiddend'>
<label for='asp_f_slider_from'><?php echo __('Slider range', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="" name='asp_f_slider_from'/> - <input class="threedigit" value="" type='text' name='asp_f_slider_to'/><br />
<p class="descMsg"><?php echo __('Leave them empty to get the values automatically.', 'ajax-search-pro'); ?></p>
<label for='asp_f_slider_step'><?php echo __('Step', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="1" name='asp_f_slider_step'/><br />
<label for='asp_f_slider_prefix'><?php echo __('Prefix', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="$" name='asp_f_slider_prefix'/>
<label for='asp_f_slider_suffix'><?php echo __('Suffix', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value=",-" name='asp_f_slider_suffix'/><br />
<label for='asp_f_slider_default'><?php echo __('Default Value', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="" name='asp_f_slider_default'/><br />
<p class="descMsg"><?php echo __('Leave it empty to set the handle automatically.', 'ajax-search-pro'); ?></p>
<label for='asp_f_slider_t_separator'><?php echo __('Thousands separator', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value=" " name='asp_f_slider_t_separator'/>
<label for='asp_f_slider_decimals'><?php echo __('Decimal places', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="0" name='asp_f_slider_decimals'/>
</div>
<div style='line-height: 33px;' class='one-item asp_f_range asp_f_type hiddend'>
<label for='asp_f_range_from'><?php echo __('Slider range', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="" name='asp_f_range_from'/> - <input class="threedigit" value="" type='text' name='asp_f_range_to'/><br />
<p class="descMsg"><?php echo __('Leave them empty to get the values automatically.', 'ajax-search-pro'); ?></p>
<label for='asp_f_slider_step'><?php echo __('Step', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="1" name='asp_f_range_step'/><br />
<label for='asp_f_slider_prefix'><?php echo __('Prefix', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="$" name='asp_f_range_prefix'/>
<label for='asp_f_slider_suffix'><?php echo __('Suffix', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value=",-" name='asp_f_range_suffix'/><br />
<label for='asp_f_range_default1'><?php echo __('Track 1 default', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="" name='asp_f_range_default1'/>
<label for='asp_f_range_default2'><?php echo __('Track 2 default', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="" name='asp_f_range_default2'/>
<p class="descMsg"><?php echo __('Leave them empty to set the handles automatically.', 'ajax-search-pro'); ?></p>
<label for='asp_f_range_t_separator'><?php echo __('Thousands separator', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value=" " name='asp_f_range_t_separator'/>
<label for='asp_f_range_decimals'><?php echo __('Decimal places', 'ajax-search-pro'); ?></label>
<input class="threedigit" type='text' value="0" name='asp_f_range_decimals'/>
</div>
<div class='one-item asp_f_operator'>
<label for='asp_f_operator'><?php echo __('Operator', 'ajax-search-pro'); ?></label>
<select name='asp_f_operator'/>
<optgroup label="Numeric operators">
<option value="eq">EQUALS</option>
<option value="neq">NOT EQUALS</option>
<option value="lt">LESS THEN</option>
<option value="let">LESS OR EQUALS THEN</option>
<option value="gt">MORE THEN</option>
<option value="get">MORE OR EQUALS THEN</option>
</optgroup>
<optgroup label="String operators">
<option value="elike">EXACTLY LIKE</option>
<option value="like">LIKE</option>
<option value="not elike">NOT EXACTLY LIKE</option>
<option value="not like">NOT LIKE</option>
</optgroup>
</select>
<p class="descMsg"><?php echo __('Use the numeric operators for numeric values and string operators for text values.', 'ajax-search-pro'); ?></p>
</div>
<div class='one-item asp_f_required'>
<label for='asp_f_required'><?php echo __('Required?', 'ajax-search-pro'); ?>
<input type="checkbox" name="asp_f_required">
</label>
<label for='asp_f_required'><?php echo __('..text: ', 'ajax-search-pro'); ?>
<input type='text' value="This field is required!" name='asp_f_invalid_input_text'/>
</label>
<p class="descMsg"><?php echo __('The plugin will not trigger search until the required field is set.', 'ajax-search-pro'); ?></p>
</div>
<div class='one-item'>
<button type='button' style='margin-right: 20px;' name='back'><?php echo __('Back', 'ajax-search-pro'); ?></button>
<button type='button' name='save'><?php echo __('Save!', 'ajax-search-pro'); ?></button>
</div>
</fieldset>
<input type="hidden" name="custom_field_items" value="<?php
if (isset($_POST['custom_field_items']))
echo esc_attr($_POST['custom_field_items']);
else
echo $sd['custom_field_items'];
?>" />
</div>
<div class="wpd-40-pc customFieldsSortable">
<div class="sortablecontainer">
<ul id="csf_sortable">
</ul>
</div>
</div>

View File

@@ -0,0 +1,62 @@
<span class="asp_legend_docs">
<a target="_blank" href="https://documentation.ajaxsearchpro.com/frontend-search-settings/date-selectors"><span class="fa fa-book"></span>
<?php echo __('Documentation', 'ajax-search-pro'); ?>
</a>
</span>
<div class="item">
<?php
$o = new wd_DateFilterPost("date_filter_from", __('Display \'Posts from date\' filter as', 'ajax-search-pro'), $sd['date_filter_from']);
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item item-flex-nogrow item-flex-wrap">
<?php
$o = new wpdreamsText("date_filter_from_t", __('Filter header text', 'ajax-search-pro'), $sd['date_filter_from_t']);
$params[$o->getName()] = $o->getData();
$o = new wpdreamsText("date_filter_from_placeholder", __('..and placeholder text', 'ajax-search-pro'), $sd['date_filter_from_placeholder']);
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item" style="border-bottom: 1px dashed #E5E5E5;padding-bottom: 26px;">
<?php
$o = new wpdreamsText("date_filter_from_format", __('Date format', 'ajax-search-pro'), $sd['date_filter_from_format']);
$params[$o->getName()] = $o->getData();
?>
<p class="descMsg">
<?php echo sprintf( __('dd/mm/yy is the most popular format, <a href="%s" target="_blank">list of accepted params</a>', 'ajax-search-pro'), 'http://api.jqueryui.com/datepicker/#utility-formatDate' ); ?>
</p>
</div>
<div class="item">
<?php
$o = new wd_DateFilterPost("date_filter_to", __('Display \'Posts to date\' filter', 'ajax-search-pro'), $sd['date_filter_to']);
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item item-flex-nogrow item-flex-wrap">
<?php
$o = new wpdreamsText("date_filter_to_t", __('Filter header text', 'ajax-search-pro'), $sd['date_filter_to_t']);
$params[$o->getName()] = $o->getData();
$o = new wpdreamsText("date_filter_to_placeholder", __('..and placeholder text', 'ajax-search-pro'), $sd['date_filter_to_placeholder']);
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item" style="border-bottom: 1px dashed #E5E5E5;padding-bottom: 26px;">
<?php
$o = new wpdreamsText("date_filter_to_format", __('Date format', 'ajax-search-pro'), $sd['date_filter_to_format']);
$params[$o->getName()] = $o->getData();
?>
<p class="descMsg">
<?php echo sprintf( __('dd/mm/yy is the most popular format, <a href="%s" target="_blank">list of accepted params</a>', 'ajax-search-pro'), 'http://api.jqueryui.com/datepicker/#utility-formatDate' ); ?>
</p>
</div>
<div class="item item-flex-nogrow">
<?php
$o = new wpdreamsYesNo("date_filter_required", __('Required fields?', 'ajax-search-pro'), $sd['date_filter_required']);
$params[$o->getName()] = $o->getData();
$o = new wpdreamsText("date_filter_invalid_input_text", __('required popup text', 'ajax-search-pro'), $sd['date_filter_invalid_input_text']);
$params[$o->getName()] = $o->getData();
?>
</div>

View File

@@ -0,0 +1,114 @@
<fieldset>
<legend>
<?php echo __('General', 'ajax-search-pro'); ?>
<span class="asp_legend_docs">
<a target="_blank" href="https://documentation.ajaxsearchpro.com/frontend-search-settings/layout-and-position"><span class="fa fa-book"></span>
<?php echo __('Layout & Position', 'ajax-search-pro'); ?>
</a>
</span>
</legend>
<div class="item">
<?php
$o = new wpdreamsYesNo("show_frontend_search_settings", __('Show search settings switch on the frontend?', 'ajax-search-pro'), $sd['show_frontend_search_settings']);
$params[$o->getName()] = $o->getData();
?>
<p class="descMsg"><?php echo __('This will hide the switch icon, so the user can\'t open/close the settings.', 'ajax-search-pro'); ?></p>
</div>
<div class="item">
<?php
$o = new wpdreamsYesNo("frontend_search_settings_visible", __('Set the search settings to visible by default?', 'ajax-search-pro'), $sd['frontend_search_settings_visible']);
$params[$o->getName()] = $o->getData();
?>
<p class="descMsg"><?php echo __('If set to Yes, then the settings will be visible/opened by default.', 'ajax-search-pro'); ?></p>
</div>
<div class="item item-flex-nogrow item-flex-wrap">
<?php
$o = new wpdreamsCustomSelect("frontend_search_settings_position", __('Search settings position', 'ajax-search-pro'), array(
'selects'=>array(
array('option' => __('Block (default)', 'ajax-search-pro'), 'value' => 'block'),
array('option' => __('Hovering', 'ajax-search-pro'), 'value' => 'hover'),
),
'value'=>$sd['frontend_search_settings_position']
));
$params[$o->getName()] = $o->getData();
$o = new wpdreamsCustomSelect("fss_hover_columns", __(' max. columns ', 'ajax-search-pro'), array(
'selects'=>array(
array("option"=>"1", "value" => 1),
array("option"=>"2", "value" => 2),
array("option"=>"3", "value" => 3),
array("option"=>"4", "value" => 4),
array("option"=>"5", "value" => 5),
array("option"=>"6", "value" => 6)
),
'value'=>$sd['fss_hover_columns']
));
$params[$o->getName()] = $o->getData();
$o = new wpdreamsCustomSelect("fss_block_columns", __(' max. columns ', 'ajax-search-pro'), array(
'selects'=>array(
array("option"=>"Auto", "value" => "auto"),
array("option"=>"1", "value" => 1),
array("option"=>"2", "value" => 2),
array("option"=>"3", "value" => 3),
array("option"=>"4", "value" => 4),
array("option"=>"5", "value" => 5),
array("option"=>"6", "value" => 6)
),
'value'=>$sd['fss_block_columns']
));
$params[$o->getName()] = $o->getData();
?>
<div class="descMsg item-flex-grow item-flex-100">
<?php echo __('The position is automatically set to Block if you use the settings shortcode.<br><strong>Columns WRAP</strong> if they reach the edge of the screen, or container element!', 'ajax-search-pro'); ?>
</div>
</div>
<div class="item">
<?php
$o = new wpdreamsYesNo("fss_hide_on_results", __('Hide the settings when the results list show up?', 'ajax-search-pro'), $sd['fss_hide_on_results']);
$params[$o->getName()] = $o->getData();
?>
<p class="descMsg">
<?php echo __('This will hide the settings (hover mode only), when the result list comes on screen', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item">
<?php
$o = new wd_imageRadio("fss_column_layout", __('Column layout', 'ajax-search-pro'), array(
'images' => array(
'flex' => "/ajax-search-pro/backend/settings/assets/img/fss_flex.jpg",
'column' => "/ajax-search-pro/backend/settings/assets/img/fss_column.jpg",
'masonry' => "/ajax-search-pro/backend/settings/assets/img/fss_masonry.jpg"
),
'value' => $sd['fss_column_layout']
));
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item">
<?php
$o = new wpdreamsTextSmall("fss_column_width", __('Column width (in pixels)', 'ajax-search-pro'), $sd['fss_column_width']);
$params[$o->getName()] = $o->getData();
?>px
<p class="descMsg">
<?php echo __('Only numeric value please.', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item">
<?php
$o = new wpdreamsTextSmall("settings_boxes_height", __('Filter boxes max-height each', 'ajax-search-pro'), $sd['settings_boxes_height']);
$params[$o->getName()] = $o->getData();
?>
<p class="descMsg">
<?php echo __('Height of each filter box within the search settings drop-down.', 'ajax-search-pro'); ?>
<?php echo ' '. sprintf(
__('Use with <a href="%s" target="_blank">CSS units</a> (like %s or %s or %s ..) Default: <strong>%s</strong>', 'ajax-search-pro'),
'https://www.w3schools.com/cssref/css_units.asp', '220px', '30vw', 'auto', '220px'
); ?>
</p>
</div>
<div class="item">
<label class="shortcode"><?php echo __('Custom Settings position shortcode:', 'ajax-search-pro'); ?></label>
<input type="text" class="quick_shortcode" value="[wpdreams_asp_settings id=<?php echo $search['id']; ?>]" readonly="readonly" />
</div>
</fieldset>

View File

@@ -0,0 +1,35 @@
<span class="asp_legend_docs">
<a target="_blank" href="https://documentation.ajaxsearchpro.com/frontend-search-settings/generic-selectors"><span class="fa fa-book"></span>
<?php echo __('Documentation', 'ajax-search-pro'); ?>
</a>
</span>
<div class="item">
<?php
$o = new wpdreamsText("generic_filter_label", __('Generic filters label text', 'ajax-search-pro'), $sd['generic_filter_label']);
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item">
<div class="errorMsg hiddend" id="genericFilterErr">
<?php echo __('<strong>WARNING:</strong> These options are not recommended to be used together with the <strong>index table</strong> engine.<br>
You are seeing this message, because the Index Table engine is selected on the <strong>General Options</strong> panel.', 'ajax-search-pro'); ?>
</div>
<?php
$o = new wd_DraggableFields("frontend_fields", __('Generic filters', 'ajax-search-pro'), array(
"value"=>$sd['frontend_fields'],
"args" => array(
"show_checkboxes" => 1,
"show_display_mode" => 1,
"show_labels" => 1,
'fields' => array(
'exact' => __('Exact matches only', 'ajax-search-pro'),
'title' => __('Search in title', 'ajax-search-pro'),
'content' => __('Search in content', 'ajax-search-pro'),
'excerpt' => __('Search in excerpt', 'ajax-search-pro')
),
'checked' => array('title', 'content', 'excerpt')
)
));
$params[$o->getName()] = $o->getData();
?>
</div>

View File

@@ -0,0 +1,5 @@
<?php
// @TODO preparation for 5.0
//$o = new wd_frontFilters("new_filters", __('YOOO', 'ajax-search-pro'), array());
//$params[$o->getName()] = $o->getData();

View File

@@ -0,0 +1,59 @@
<span class="asp_legend_docs">
<a target="_blank" href="https://documentation.ajaxsearchpro.com/frontend-search-settings/post-type-selectors"><span class="fa fa-book"></span>
<?php echo __('Documentation', 'ajax-search-pro'); ?>
</a>
</span>
<div class="item">
<?php
$o = new wpdreamsText("custom_types_label", __('Custom post types label text', 'ajax-search-pro'), $sd['custom_types_label']);
$params[$o->getName()] = $o->getData();
?>
<p class="descMsg">
<?php echo __('If empty, the label is not displayed.', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item item-flex-nogrow">
<?php
$o = new wpdreamsCustomSelect("cpt_display_mode", __('Filter display mode', 'ajax-search-pro'), array(
"selects" => array(
array("value" => "checkboxes", "option" => __("Checkboxes", 'ajax-search-pro')),
array("value" => "dropdown", "option" => __("Drop-down", 'ajax-search-pro')),
array("value" => "radio", "option" => __("Radio buttons", 'ajax-search-pro'))
),
"value" => $sd['cpt_display_mode']));
$params[$o->getName()] = $o->getData();
$o = new wpdreamsCustomSelect("cpt_filter_default", __('default selected', 'ajax-search-pro'), array(
"selects" => array_merge( array( array("value" => '-1', "option" => 'Select All/Any Option') ), array_values(array_map(function($_pt){
return array("value" => $_pt, "option" => $_pt);
}, get_post_types(array(
"public" => true,
"_builtin" => false
), "names", "OR")))),
"value" => $sd['cpt_filter_default']));
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item item-flex-nogrow">
<?php
$o = new wpdreamsYesNo("cpt_cbx_show_select_all", __('Display the select all option?', 'ajax-search-pro'), $sd['cpt_cbx_show_select_all']);
$params[$o->getName()] = $o->getData();
$o = new wpdreamsText("cpt_cbx_show_select_all_text", __('text', 'ajax-search-pro'), $sd['cpt_cbx_show_select_all_text']);
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item item-flex-nogrow">
<?php
$o = new wpdreamsYesNo("cpt_required", __('Required field?', 'ajax-search-pro'), $sd['cpt_required']);
$params[$o->getName()] = $o->getData();
$o = new wpdreamsText("cpt_invalid_input_text", __('required popup text', 'ajax-search-pro'), $sd['cpt_invalid_input_text']);
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item"><?php
$o = new wpdreamsCustomPostTypesEditable("showcustomtypes", __('Show search in custom post types selectors', 'ajax-search-pro'), $sd['showcustomtypes']);
$params[$o->getName()] = $o->getData();
$params['selected-' . $o->getName()] = $o->getSelected();
?>
</div>

View File

@@ -0,0 +1,78 @@
<div class="item">
<?php
$o = new wpdreamsSelectTags("show_frontend_tags", __('Show the tag selectors?', 'ajax-search-pro'), $sd['show_frontend_tags']);
?>
</div>
<div class="item item-flex-nogrow wd_tag_mode_dropdown wd_tag_mode_radio">
<?php
$o = new wpdreamsYesNo("display_all_tags_option", __('Show all tags option?', 'ajax-search-pro'), $sd['display_all_tags_option']);
$params[$o->getName()] = $o->getData();
$o = new wpdreamsText("all_tags_opt_text", __('text ', 'ajax-search-pro'), $sd['all_tags_opt_text']);
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item item-flex-nogrow wd_tag_mode_checkboxes">
<?php
$o = new wpdreamsYesNo("display_all_tags_check_opt", __('Show select/deselect all option?', 'ajax-search-pro'), $sd['display_all_tags_check_opt']);
$params[$o->getName()] = $o->getData();
$o = new wpdreamsText("all_tags_check_opt_text", __('text ', 'ajax-search-pro'), $sd['all_tags_check_opt_text']);
$params[$o->getName()] = $o->getData();
$o = new wpdreamsCustomSelect("all_tags_check_opt_state", __('state ', 'ajax-search-pro'), array(
"selects" => array(
array("option" => __('Checked', 'ajax-search-pro'), "value" => "checked"),
array("option" => __('Unchecked', 'ajax-search-pro'), "value" => "unchecked")
),
"value" => $sd['all_tags_check_opt_state']
));
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item wd_tag_mode_multisearch">
<?php
$o = new wpdreamsText("frontend_tags_placeholder", __('Placeholder text', 'ajax-search-pro'), $sd['frontend_tags_placeholder']);
?>
<p class="descMsg">
<?php echo __('Placeholder text for the multiselect search layout, in case nothing is selected.', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item item-flex-nogrow">
<?php
$o = new wpdreamsYesNo("frontend_tags_required", __('Required field?', 'ajax-search-pro'), $sd['frontend_tags_required']);
$params[$o->getName()] = $o->getData();
$o = new wpdreamsText("frontend_tags_invalid_input_text", __('required popup text', 'ajax-search-pro'), $sd['frontend_tags_invalid_input_text']);
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item">
<?php
$o = new wpdreamsText("frontend_tags_header", __('Tags header text', 'ajax-search-pro'), $sd['frontend_tags_header']);
?>
<p class="descMsg">
<?php echo __('Leave empty if you don\'t want to display the header.', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item wd_tag_mode_checkboxes"><?php
$o = new wpdreamsCustomSelect("frontend_tags_logic", __('Tags logic (only used for checkboxes!)', 'ajax-search-pro'),
array(
'selects' => array(
array('option' => __('At least one selected tag should match', 'ajax-search-pro'), 'value' => 'or'),
array('option' => __('All of the selected tags should match, and unchecked are exclusions', 'ajax-search-pro'), 'value' => 'and'),
array('option' => __('All of the selected tags should match EXACTLY, but unchecked not excluded', 'ajax-search-pro'), 'value' => 'andex')
),
'value' => $sd['frontend_tags_logic']
));
$params[$o->getName()] = $o->getData();
?>
<p class="descMsg">
<?php echo __('This determines the rule how the selections should be treated. Only affects the <strong>checkbox</strong> layout!', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item">
<?php
$o = new wpdreamsYesNo("frontend_tags_empty", __('Display posts/pages/CPT as results, which have no tags?', 'ajax-search-pro'), $sd['frontend_tags_empty']);
?>
<p class="descMsg">
<?php echo __('When turned OFF, any custom post type (post, page etc..) without tags <strong>will not be displayed</strong> as results.', 'ajax-search-pro'); ?>
</p>
</div>

View File

@@ -0,0 +1,110 @@
<div class="item">
<?php
$o = new wpdreamsYesNo("fe_reset_button", __('Display a Reset Filters button within the settings drop-down?', 'ajax-search-pro'), $sd['fe_reset_button']);
?>
</div>
<fieldset id="fe_rb_functionality">
<legend>Functionality</legend>
<div class="item">
<?php
$o = new wpdreamsCustomSelect("fe_rb_action", __('Action after pressing the button & reset', 'ajax-search-pro'),
array(
'selects' => array(
array('option' => __('Nothing', 'ajax-search-pro'), 'value' => 'nothing'),
array('option' => __('Nothing & Close the results', 'ajax-search-pro'), 'value' => 'close'),
array('option' => __('Trigger the live search', 'ajax-search-pro'), 'value' => 'live')
),
'value' => $sd['fe_rb_action']
));
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item">
<?php
$o = new wpdreamsCustomSelect("fe_rb_position", __('Display position relative to the search button (when enabled)', 'ajax-search-pro'),
array(
'selects' => array(
array('option' => __('Before the Search button', 'ajax-search-pro'), 'value' => 'before'),
array('option' => __('After the Search button', 'ajax-search-pro'), 'value' => 'after')
),
'value' => $sd['fe_rb_position']
));
$params[$o->getName()] = $o->getData();
?>
</div>
</fieldset>
<fieldset id="fe_reset_button">
<legend>Visual</legend>
<div class="item">
<?php
$o = new wpdreamsText("fe_rb_text", __('Button text', 'ajax-search-pro'), $sd['fe_rb_text']);
?>
</div>
<div class="item">
<?php
$o = new wpdreamsCustomSelect("fe_rb_align", __('Button alignment', 'ajax-search-pro'),
array(
'selects' => array(
array('option' => __('Left', 'ajax-search-pro'), 'value' => 'left'),
array('option' => __('Right', 'ajax-search-pro'), 'value' => 'right'),
array('option' => __('Center', 'ajax-search-pro'), 'value' => 'center')
),
'value' => $sd['fe_rb_align']
));
?>
</div>
<div class="item">
<?php $o = new wpdreamsColorPicker("fe_rb_bg", __('Background color', 'ajax-search-pro'), $sd['fe_rb_bg']); ?>
</div>
<div class="item">
<?php $o = new wpdreamsBorder("fe_rb_border", __('Button border', 'ajax-search-pro'), $sd['fe_rb_border']); ?>
</div>
<div class="item">
<?php $o = new wpdreamsBoxShadow("fe_rb_boxshadow", __('Button box-shadow', 'ajax-search-pro'), $sd['fe_rb_boxshadow']); ?>
</div>
<div class="item item-flex-nogrow">
<?php
$o = new wd_ANInputs("fe_rb_padding", __('Padding', 'ajax-search-pro'),
array(
'args' => array(
'inputs' => array(
array( __('Top', 'ajax-search-pro'), '0px'),
array( __('Right', 'ajax-search-pro'), '0px'),
array( __('Bottom', 'ajax-search-pro'), '0px'),
array( __('Left', 'ajax-search-pro'), '0px')
)
),
'value' => $sd['fe_rb_padding']
));
$o = new wd_ANInputs("fe_rb_margin", __('Margin', 'ajax-search-pro'),
array(
'args' => array(
'inputs' => array(
array( __('Top', 'ajax-search-pro'), '0px'),
array( __('Right', 'ajax-search-pro'), '0px'),
array( __('Bottom', 'ajax-search-pro'), '0px'),
array( __('Left', 'ajax-search-pro'), '0px')
)
),
'value' => $sd['fe_rb_margin']
));
?>
</div>
<div class="item">
<?php
$o = new wpdreamsFontComplete("fe_rb_font", __('Button font', 'ajax-search-pro'), $sd['fe_rb_font']);
$params[$o->getName()] = $o->getData();
?>
</div>
<div style="display:none !important;">
<input name="fe_rb_theme" type="hidden" value="default">
<div class="triggerer"></div>
</div>
<div id="fe_rb_themes" style="display:none !important;"><?php echo json_encode($_sb_themes); ?></div>
<div id="fe_rb_popup" class="hiddend"></div>
<a href="#" id="fe_rb_trigger"><?php echo __('Select a button theme', 'ajax-search-pro'); ?></a>
<div id="fe_rb_preview">
<button class="asp_reset_btn asp_r_btn"><?php echo __('Search!', 'ajax-search-pro'); ?></button>
</div>
<style id="fe_rb_css"></style>
</fieldset>

View File

@@ -0,0 +1,156 @@
<span class="asp_legend_docs">
<a target="_blank" href="https://documentation.ajaxsearchpro.com/frontend-search-settings/search-button"><span class="fa fa-book"></span>
<?php echo __('Documentation', 'ajax-search-pro'); ?>
</a>
</span>
<div class="item">
<?php
$o = new wpdreamsYesNo("fe_search_button", __('Display a search button within the settings drop-down?', 'ajax-search-pro'), $sd['fe_search_button']);
?>
</div>
<fieldset id="fe_sb_functionality">
<legend><?php _e('Functionality', 'ajax-search-pro'); ?></legend>
<div class="item item-flex-nogrow item-flex-wrap">
<?php
foreach ($_red_opts as $rok => $rov)
if ( $rov['value'] == 'same' || $rov['value'] == 'nothing' )
unset($_red_opts[$rok]);
$o = new wpdreamsCustomSelect("fe_sb_action", __('Action when pressing the button', 'ajax-search-pro'),
array(
'selects' => $_red_opts,
'value' => $sd['fe_sb_action']
));
$params[$o->getName()] = $o->getData();
$o = new wpdreamsCustomSelect("fe_sb_action_location", __(' location: ', 'ajax-search-pro'),
array(
'selects' => array(
array('option' => __('Use same tab', 'ajax-search-pro'), 'value' => 'same'),
array('option' => __('Open new tab', 'ajax-search-pro'), 'value' => 'new')
),
'value' => $sd['fe_sb_action_location']
));
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item">
<?php
$o = new wd_CPTSearchCallBack('fe_sb_redirect_elementor', __('Select a page with an Elementor Pro posts widget', 'ajax-search-pro'), array(
'value'=>$sd['fe_sb_redirect_elementor'],
'args'=> array(
'controls_position' => 'left',
'class'=>'wpd-text-right'
)
));
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item">
<?php
$o = new wpdreamsText("fe_sb_redirect_url", __('Custom redirect URL', 'ajax-search-pro'),
$sd['fe_sb_redirect_url']);
$params[$o->getName()] = $o->getData();
?>
<p class="descMsg">
<?php echo sprintf( __('You can use the <string>asp_redirect_url</string> filter to add more variables. See <a href="%s" target="_blank">this tutorial</a>.', 'ajax-search-pro'), 'https://knowledgebase.ajaxsearchpro.com/miscellaneous/tutorials/how-to-add-variables-to-the-redirect-to-url-or-the-show-more-url' ); ?>
</p>
</div>
</fieldset>
<fieldset id="fe_search_button">
<legend><?php _e('Visual', 'ajax-search-pro'); ?></legend>
<div class="item">
<?php
$o = new wpdreamsText("fe_sb_text", __('Button text', 'ajax-search-pro'), $sd['fe_sb_text']);
?>
</div>
<div class="item">
<?php
$o = new wpdreamsCustomSelect("fe_sb_align", __('Button alignment', 'ajax-search-pro'),
array(
'selects' => array(
array('option' => __('Left', 'ajax-search-pro'), 'value' => 'left'),
array('option' => __('Right', 'ajax-search-pro'), 'value' => 'right'),
array('option' => __('Center', 'ajax-search-pro'), 'value' => 'center')
),
'value' => $sd['fe_sb_align']
));
?>
</div>
<div class="item">
<?php $o = new wpdreamsColorPicker("fe_sb_bg", __('Background color', 'ajax-search-pro'), $sd['fe_sb_bg']); ?>
</div>
<div class="item">
<?php $o = new wpdreamsBorder("fe_sb_border", __('Button border', 'ajax-search-pro'), $sd['fe_sb_border']); ?>
</div>
<div class="item">
<?php $o = new wpdreamsBoxShadow("fe_sb_boxshadow", __('Button box-shadow', 'ajax-search-pro'), $sd['fe_sb_boxshadow']); ?>
</div>
<div class="item item-flex-nogrow">
<?php
$o = new wd_ANInputs("fe_sb_padding", __('Padding', 'ajax-search-pro'),
array(
'args' => array(
'inputs' => array(
array( __('Top', 'ajax-search-pro'), '0px'),
array( __('Right', 'ajax-search-pro'), '0px'),
array( __('Bottom', 'ajax-search-pro'), '0px'),
array( __('Left', 'ajax-search-pro'), '0px')
)
),
'value' => $sd['fe_sb_padding']
));
$o = new wd_ANInputs("fe_sb_margin", __('Margin', 'ajax-search-pro'),
array(
'args' => array(
'inputs' => array(
array( __('Top', 'ajax-search-pro'), '0px'),
array( __('Right', 'ajax-search-pro'), '0px'),
array( __('Bottom', 'ajax-search-pro'), '0px'),
array( __('Left', 'ajax-search-pro'), '0px')
)
),
'value' => $sd['fe_sb_margin']
));
?>
</div>
<div class="item">
<?php
$o = new wpdreamsFontComplete("fe_sb_font", __('Button font', 'ajax-search-pro'), $sd['fe_sb_font']);
$params[$o->getName()] = $o->getData();
?>
</div>
<div style="display:none !important;">
<input name="fe_sb_theme" type="hidden" value="default">
<div class="triggerer"></div>
</div>
<div id="fe_sb_themes" style="display:none !important;"><?php echo json_encode($_sb_themes); ?></div>
<div id="fe_sb_popup" class="hiddend"></div>
<a href="#" id="fe_sb_trigger"><?php echo __('Select a button theme', 'ajax-search-pro'); ?></a>
<div id="fe_sb_preview">
<button class="asp_search_btn asp_s_btn"><?php echo __('Search!', 'ajax-search-pro'); ?></button>
</div>
<style id="fe_sb_css"></style>
</fieldset>
<?php if (ASP_DEBUG == 1): ?>
<textarea id="sb_previewtext"></textarea>
<script>
jQuery(function($){
$("#sb_previewtext").click(function(){
var skip = ['fe_sb_text', 'fe_sb_align'];
var parent = $('#fe_search_button');
var content = "";
var v = "";
parent.find("input[isparam=1], select[isparam=1]").each(function(){
var name = $(this).attr("name");
if ( skip.indexOf(name) > -1 )
return true;
var val = $(this).val().replace(/(\r\n|\n|\r)/gm,"");
content += '"'+name+'":"'+val+'",\n';
});
content = content.trim();
content = content.slice(0, - 1);
$(this).val('"theme": {\n' + content + "\n}");
});
});
</script>
<?php endif; ?>

View File

@@ -0,0 +1,78 @@
<span class="asp_legend_docs">
<a target="_blank" href="https://documentation.ajaxsearchpro.com/frontend-search-settings/category-and-taxponomy-term-filters"><span class="fa fa-book"></span>
<?php echo __('Documentation', 'ajax-search-pro'); ?>
</a>
</span>
<div class="item">
<?php
$o = new wpdreamsYesNo("showsearchintaxonomies", __('Display the category/terms selectors?', 'ajax-search-pro'), $sd['showsearchintaxonomies']);
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item">
<?php
$o = new wd_TaxonomyTermSelect("show_terms", __('Show the following taxonomy term selectors on frontend', 'ajax-search-pro'), array(
"value"=>$sd['show_terms'],
"args" => array(
"show_type" => 0,
"show_checkboxes" => 1,
"show_display_mode" => 1,
"show_more_options" => 1,
"built_in" => true,
"exclude_taxonomies" => array("post_tag", __('nav_menu', 'ajax-search-pro'), "link_category")
)
));
$params[$o->getName()] = $o->getData();
?>
</div>
<div class="item">
<?php
$o = new wpdreamsYesNo("frontend_terms_parent_child_assignment", __('Filtering by parent terms should also include the results from children?', 'ajax-search-pro'), $sd['frontend_terms_parent_child_assignment']);
$params[$o->getName()] = $o->getData();
?>
<p class="descMsg">
<?php echo __('If a post from child category is not directly assigned to the parent category as well, this will force the filter to still apply if the parent category is selected.', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item">
<?php
$o = new wpdreamsYesNo("frontend_terms_hide_empty", __('Hide empty terms?', 'ajax-search-pro'), $sd['frontend_terms_hide_empty']);
$params[$o->getName()] = $o->getData();
?>
<p class="descMsg">
<?php echo __('Automatically hides terms, that have no posts or any CPT assigned to them.', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item">
<?php
$o = new wpdreamsYesNo("frontend_term_hierarchy", __('Maintain term hierarchy?', 'ajax-search-pro'), $sd['frontend_term_hierarchy']);
$params[$o->getName()] = $o->getData();
?>
<p class="descMsg">
<?php echo __('Shows child terms hierarchically under their parents with padding. Supports multiple term levels.', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item">
<?php
$o = new wpdreamsCustomArraySelect("frontend_term_order",
array(
__('Default term order', 'ajax-search-pro'),
""
),
array(
'optionsArr' => array(
array(
array('option' => __('Name', 'ajax-search-pro'), 'value' => 'name'),
array('option' => __('Item count', 'ajax-search-pro'), 'value' => 'count'),
array('option' => __('ID', 'ajax-search-pro'), 'value' => 'id')
),
array(
array('option' => __('Ascending', 'ajax-search-pro'), 'value' => 'ASC'),
array('option' => __('Descending', 'ajax-search-pro'), 'value' => 'DESC')
)
),
'value' => $sd['frontend_term_order']
));
$params[$o->getName()] = $o->getData();
?>
</div>