在WordPress中,如何使用ACF日期选择器限制起始日期和结束日期的两个日期?

20

我已在WordPress中创建了一个事件文章类型。我使用了ACF日期选择器来设置开始日期和结束日期。

我希望管理员可以选择大于开始日期的结束日期。

有没有什么方法限制开始日期和结束日期呢?

例如,如果管理员选择2016年1月1日作为开始日期,则只能选择该日期或之后的结束日期。


这是ACF中非常重要和必要的功能,许多人都需要它。我花了很多时间来解决这个问题并进行了研究,但没有找到任何解决方案。这是ACF的请求功能,因此它将随着最新版本的ACF一起发布。 - Chandresh
有什么解决方案吗? - Ahsan Ali
仍未得到任何解决方案。 - Jitendra Damor
我也遇到了同样的问题,仍然没有得到答案,有人可以帮助我吗?我也阅读了https://support.advancedcustomfields.com/forums/topic/restrict-datepicker-ending-date-by-starting-date/这个链接,但是没有得到答案。 - Anand Choudhary
有什么解决方案吗? - Asfandyar Khan
4个回答

4
我认为我们可以使用JavaScript,并使用以下代码来设置结束日期的限制:
$( ".selector" ).datepicker({
  minDate: new Date(  )
});

我想在WordPress管理面板中限制开始和结束日期。如果管理员选择某个日期作为开始日期,则结束日期应等于或大于开始日期。 - Jitendra Damor
是的,我需要一些帮助。我也查看了https://support.advancedcustomfields.com/forums/topic/restrict-datepicker-ending-date-by-starting-date/,但是我的问题还没有解决。 - Anand Choudhary

4

3

我曾遇到过与常规日期字段类似的问题,希望这段JS代码(使用moment JS库)经过一些调整后能帮助你。

$(document).ready(function() {
   $("input[name='Arrival']").change(function() {
      var date_picked = $("input[name='Arrival']").val();
      var SpecialTo = moment(date_picked, "YYYY-MM-DD");
      var today = new Date();
      today.setDate(today.getDate() - 240);
      var selectedDate = new Date(date_picked);
      if (today <= selectedDate) {
         //alert('Date is today or in future');
      } else {
         alert('Date is in the past');
         $("input[name='Arrival']").val('');
      }
  });
}) 

如果您能发布带有值的日期输入源HTML,我可能可以将其更改为您想要的内容。

我在自定义文章类型中使用了ACF日期选择器来设置开始日期和结束日期。 不是在前端页面上。 我想要在后台对其进行限制。 - Jitendra Damor
如何使用 ACF 日期选择器? - Anand Choudhary

1

这个很好用。只需使用检查元素获取名称字段。在functions.php文件中添加以下代码。

add_action('acf/validate_save_post', 'my_acf_validate_save_post', 10, 0);

/**
 * @throws Exception
 */
function my_acf_validate_save_post() {

    $start = $_POST['acf']['field_61a7519a57d99'];
    $end = $_POST['acf']['field_61a751d957d9a'];

    // check custom $_POST data
    if ($start > $end) {
        acf_add_validation_error('acf[field_61a751d957d9a]', 'End date should be greater than or equal to start date.');
    }
}

当您打开检查元素时,输入字段应该看起来像这样:
<div class="acf-date-picker acf-input-wrap" data-date_format="dd. MM yy" data-first_day="1">
     <input type="hidden" id="acf-field_61a751d957d9a" name="acf[field_61a751d957d9a]" value="20211201">
     <input type="text" class="input hasDatepicker" value="16. January 2022" id="dp1638477022818">
</div>

你可以在这里找到更多信息: https://www.advancedcustomfields.com/resources/acf-validate_save_post/

此链接提供有关如何使用高级自定义字段插件验证和保存WordPress帖子的详细信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接