fixed error in handling dates with acf format as datepicker and not datetimepicker

This commit is contained in:
asus
2024-04-25 11:58:06 +02:00
parent 7a704a400b
commit 2205044f74
2 changed files with 36 additions and 5 deletions

View File

@@ -98,6 +98,7 @@ class Cipf {
const ACF_PARTNER_OFFER_2_OUTPUT = ['_name'=>'afficher_offre_2', 'show'=>'Afficher', 'hide'=>'Masquer'];
const ACF_PARTNER_OFFER_3_OUTPUT = ['_name'=>'afficher_offre_3', 'show'=>'Afficher', 'hide'=>'Masquer'];
const ACF_READONLY_CLASS = 'readonly_acf';
const ACF_DATE_FORMAT = 'Ymd';
// META
const META_PAYEMENT_STATUS = 'cipf_payement_status';

View File

@@ -18,6 +18,7 @@ if (!defined('ABSPATH')) {
*/
function get_date_CIPF($acf_date, $acf_id) {
Plgntls::debug_infos();
$acf_date_format = Cipf::ACF_DATE_FORMAT;
/*
* get acf date field
@@ -36,11 +37,37 @@ function get_date_CIPF($acf_date, $acf_id) {
// compare 2 dates : https://stackoverflow.com/q/8722806/9497573
// also I dont use strtotime to compare 2 ints,
// because i don't know if it will fail one day (2000y bug style)
$current_date = date_create_immutable_from_format('Ymd', $current_date_string);
$current_date = date_create_immutable_from_format($acf_date_format, $current_date_string);
if ($current_date === false) {
return false;
}
// /*
// * get acf date field
// *
// */
// $current_date_object = get_field_object($acf_date['_name'], $acf_id);
// if (empty($current_date_object)) {
// return false;
// }
// if (empty($current_date_object['value'])) {
// return false;
// }
//
// /*
// * create date object from acf date
// *
// */
// $current_date_string = $current_date_object['value'];
// $current_format_field = $current_date_object['return_format'];
// // compare 2 dates : https://stackoverflow.com/q/8722806/9497573
// // also I dont use strtotime to compare 2 ints,
// // because i don't know if it will fail one day (2000y bug style)
// $current_date = date_create_immutable_from_format($current_format_field, $current_date_string);
// if ($current_date === false) {
// return false;
// }
/*
* returns the date object
*
@@ -110,9 +137,9 @@ function get_new_date_CIPF($date, $duration) {
*/
function set_acf_date_CIPF($acf_date_field_to_update, $new_date, $user_id) {
Plgntls::debug_infos();
$acf_date_format = Cipf::ACF_DATE_FORMAT;
$acf_id = 'user_'.$user_id;
$acf_date_format = 'Y-m-d H:i:s';
set_acf_field_CIPF($acf_date_field_to_update, $new_date->format($acf_date_format), $acf_id);
}
@@ -220,10 +247,13 @@ function is_prof_account_deletion_date_exceeded_CIPF($user_id = null) {
*/
function get_offer_date_expiration_CIPF($offer_number, $page_id) {
Plgntls::debug_infos();
$acf_date_format = Cipf::ACF_DATE_FORMAT;
$acf_field_name = 'fin_offre_'.$offer_number;
$current_date_expiration = get_field($acf_field_name, $page_id, false);
$date_expiration = date_create_immutable_from_format($acf_date_format, $current_date_expiration);
// last parameter is false to not format the date, and get the 'Ymd' format
$offer_expiration = get_field('fin_offre_'.$offer_number, $page_id, false);
$date_expiration = date_create_immutable_from_format('Ymd', $offer_expiration);
return $date_expiration;
}
function is_offer_date_exceeded_CIPF($offer_number, $page_id) {