所以我在 WordPress 上有一个带有内置日历的插件。
开发人员已给出有关如何删除选择过去日期以及您选择的具体日期的选项的说明。
http://support.themecatcher.net/quform-wordpress/guides/advanced/date-validation
我已按照说明进行操作,但也许我遗漏了一些内容。因为一次只能运行其中一个功能,但绝不会同时运行这两个功能。
这是代码。任何帮助将不胜感激。谢谢!
<小时/>function my_prevent_past_dates($valid, $value, $element)
{
$time = strtotime("{$value['year']}-{$value['month']}-{$value['day']}");
if ($time < strtotime('today')) {
$element->addError('Please choose a date in the future');
$valid = false;
}
return $valid;
}
add_filter('iphorm_element_valid_iphorm_1_6', 'my_prevent_past_dates', 10, 3);
function my_datepicker_prevent_past_dates($options, $dpMinYear, $dpMaxYear, $element)
{
return "{
minDate: 0,
maxDate: new Date({$dpMaxYear}, 12 - 1, 31)
}";
}
add_filter('iphorm_datepicker_options_iphorm_1_6', 'my_datepicker_prevent_past_dates', 10, 4);
function my_get_dates_to_disable()
{
return array(
'2015-05-1',
'2015-05-2',
'2015-05-3',
'2015-05-4',
'2015-05-5',
'2015-05-6',
);
}
function my_prevent_specific_dates($valid, $value, $element)
{
if ($valid) {
$disabledDates = my_get_dates_to_disable();
$submittedDate = "{$value['year']}-{$value['month']}-{$value['day']}";
if (in_array($submittedDate, $disabledDates)) {
$element->addError('That date is not available');
$valid = false;
}
}
return $valid;
}
add_filter('iphorm_element_valid_iphorm_1_6', 'my_prevent_specific_dates', 10, 3);
function my_datepicker_prevent_specific_dates($options, $dpMinYear, $dpMaxYear, $element)
{
return "{
beforeShowDay: function (date) {
if (quformDisabledDates) {
for (var i = 0; i < quformDisabledDates.length; i++) {
var parts = quformDisabledDates[i].split('-');
if (date.getFullYear() == parts[0] && (date.getMonth()+1) == parts[1] && date.getDate() == parts[2]) {
return [false];
}
}
}
return [true];
}
}";
}
add_filter('iphorm_datepicker_options_iphorm_1_6', 'my_datepicker_prevent_specific_dates', 10, 4);
function my_print_dates_to_disable()
{
?>
<script type="text/javascript">
var quformDisabledDates = <?php echo json_encode(my_get_dates_to_disable()); ?>;
</script>
<?php
}
add_action('wp_head', 'my_print_dates_to_disable');
最佳答案
您可以将 my_prevent_past_dates 与 my_prevent_specific_dates 结合使用,并将 my_datepicker_prevent_past_dates 与 my_datepicker_prevent_specific_dates 结合使用。
function my_get_dates_to_disable()
{
return array(
'2015-05-1',
'2015-05-2',
'2015-05-3',
'2015-05-4',
'2015-05-5',
'2015-05-6',
);
}
function my_prevent_bad_dates($valid, $value, $element)
{
$time = strtotime("{$value['year']}-{$value['month']}-{$value['day']}");
if ($time < strtotime('today')) {
$element->addError('Please choose a date in the future');
$valid = false;
} else {
$disabledDates = my_get_dates_to_disable();
$submittedDate = "{$value['year']}-{$value['month']}-{$value['day']}";
if (in_array($submittedDate, $disabledDates)) {
$element->addError('That date is not available');
$valid = false;
}
}
return $valid;
}
add_filter('iphorm_element_valid_iphorm_1_6', 'my_prevent_bad_dates', 10, 3);
function my_datepicker_prevent_bad_dates($options, $dpMinYear, $dpMaxYear, $element)
{
return "{
minDate: 0,
maxDate: new Date({$dpMaxYear}, 12 - 1, 31),
beforeShowDay: function (date) {
if (quformDisabledDates) {
for (var i = 0; i < quformDisabledDates.length; i++) {
var parts = quformDisabledDates[i].split('-');
if (date.getFullYear() == parts[0] && (date.getMonth()+1) == parts[1] && date.getDate() == parts[2]) {
return [false];
}
}
}
return [true];
}
}";
}
add_filter('iphorm_datepicker_options_iphorm_1_6', 'my_datepicker_prevent_bad_dates', 10, 4);
function my_print_dates_to_disable()
{
?>
<script type="text/javascript">
var quformDisabledDates = <?php echo json_encode(my_get_dates_to_disable()); ?>;
</script>
<?php
}
add_action('wp_head', 'my_print_dates_to_disable');
关于javascript - WordPress插件功能,只有一个可以用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29922671/