插入新订单时从 opencart 2 admin 中删除必填字段
remove required field from opencart 2 admin when inserting new orders
我正在尝试通过 Opencart 2 中的管理员手动插入订单,因此这些订单中的大多数都没有电子邮件地址,因此我需要通过管理员在插入订单时不需要提交电子邮件
但在 Opencart 2 中有点复杂
我在添加函数中看到下面的代码
if ($this->validate()) {
// API
$this->load->model('user/api');
$api_info = `$this->model_user_api->getApi($this->config->get('config_api_id'));`
if ($api_info) {
$curl = curl_init();
// Set SSL if required
if (substr(HTTPS_CATALOG, 0, 5) == 'https') {
curl_setopt($curl, CURLOPT_PORT, 443);
}
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_USERAGENT, $this->request->server['HTTP_USER_AGENT']);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FORBID_REUSE, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, HTTPS_CATALOG . 'index.php?route=api/login');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($api_info));
$json = curl_exec($curl);
if (!$json) {
$this->error['warning'] = sprintf($this->language->get('error_curl'), curl_error($curl), curl_errno($curl));
} else {
$response = json_decode($json, true);
var_dump($response);
if (isset($response['cookie'])) {
$this->session->data['cookie'] = $response['cookie'];
}
curl_close($curl);
}
}
在 sale/order 控制器中,除了上述代码之外,我在插入订单时没有发现任何特定的表单验证。
谁能告诉我在哪里可以找到 opencart 2 中的表单验证部分?
OpenCart 2.0 使用目录侧 API,这就是上面的代码所指的(它通过 cURL 调用它)。您可以在相对 .php
文件的 /catalog/controller/api/
中找到它,在您的例子中是 order.php
。这包括验证以及调用模型文件的代码
我正在尝试通过 Opencart 2 中的管理员手动插入订单,因此这些订单中的大多数都没有电子邮件地址,因此我需要通过管理员在插入订单时不需要提交电子邮件
但在 Opencart 2 中有点复杂
我在添加函数中看到下面的代码
if ($this->validate()) {
// API
$this->load->model('user/api');
$api_info = `$this->model_user_api->getApi($this->config->get('config_api_id'));`
if ($api_info) {
$curl = curl_init();
// Set SSL if required
if (substr(HTTPS_CATALOG, 0, 5) == 'https') {
curl_setopt($curl, CURLOPT_PORT, 443);
}
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_USERAGENT, $this->request->server['HTTP_USER_AGENT']);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FORBID_REUSE, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, HTTPS_CATALOG . 'index.php?route=api/login');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($api_info));
$json = curl_exec($curl);
if (!$json) {
$this->error['warning'] = sprintf($this->language->get('error_curl'), curl_error($curl), curl_errno($curl));
} else {
$response = json_decode($json, true);
var_dump($response);
if (isset($response['cookie'])) {
$this->session->data['cookie'] = $response['cookie'];
}
curl_close($curl);
}
}
在 sale/order 控制器中,除了上述代码之外,我在插入订单时没有发现任何特定的表单验证。
谁能告诉我在哪里可以找到 opencart 2 中的表单验证部分?
OpenCart 2.0 使用目录侧 API,这就是上面的代码所指的(它通过 cURL 调用它)。您可以在相对 .php
文件的 /catalog/controller/api/
中找到它,在您的例子中是 order.php
。这包括验证以及调用模型文件的代码