当函数勾选表单上的复选框时,PHP函数添加日期时间戳

时间:2018-05-25 09:37:41

标签: php wordpress forms validation

我有一个在Ninja Forms中运行的表单,并且有一个自定义的代码可以将详细信息激发到外部API,我遇到的问题是双重的。

我需要这样做,如果你勾选gdpr_consent_date复选框,它会通过这个过程向API发出一个日期时间(js timetstamp),然后如果你勾选了email_uptdate_optin一个布尔值是否已被检查。

以下是使用的代码:

function signup_form_process() {
global $ninja_forms_processing;

if ($ninja_forms_processing->get_form_ID() !== 7) {
return;
}

$url = 'https://' . APP_DOMAIN . '/account/alternative_signup';

$data = get_sign_up_form_data([
'email' => 11,
'name' => 12,
'password' => 13,
'time_zone_offset' => 26,
'gdpr_consent_date'=> 132,
'email_update_optin'=> 133,
]);

$old_account = login_old_api($data['email'], $data['password']);
$old_status_code = substr($old_account['response'], 0, 3);
$old_message = substr($old_account['response'], 
strpos($old_account['response'], '~') + 1);

if ($old_status_code === '200' || $old_status_code === '401' || 
$old_status_code === '409') {
$ninja_forms_processing->add_error('error_old_account', sprintf(__('The account %s already exists, <a href="%s" class="alert-link">please login here.</a>', 'sage'), $data['email'], home_url('/login/')));
return;
}

$options = [
'http' => [
  'header' => "Content-Type: application/json\r\n" .
              "Accept: application/json",
  'method'  => 'POST',
  'content' => json_encode($data),
  'ignore_errors' => true
],
];

$context  = stream_context_create($options);
$result = json_decode(file_get_contents($url, false, $context));
$headers = Utils\parse_headers($http_response_header);

Utils\log('Signup API Response:');
Utils\log(['response' => $result, 'headers' => $headers]);

if (strpos($headers['status'], '201') === 0) {
$data['username'] = $data['email'];
$data['remember_me'] = 0;
unset($data['email']);
unset($data['name']);
post_login($data);
} else {
if (is_array($result->error)) {
  $ninja_forms_processing->add_error('error_api', $result->error[1]);
} else if (!empty($result->error)) {
  $ninja_forms_processing->add_error('error_api', $result->error);
} else {
  $ninja_forms_processing->add_error('error_api', __('An unknown error occurred.', 'sage'));
}
}
}
add_action('ninja_forms_post_process', __NAMESPACE__ . '\\signup_form_process');

我有点卡住了,如果有人可以提供帮助那就太棒了!

克里斯

1 个答案:

答案 0 :(得分:0)

将gdpr_consent_date的输入值设置为<?php date('H:i:s d-m-Y') ?>,并将true设置为复选框。

日期格式可以根据您的需要进行更改,更多信息here