如何使用 update_profile 钩子停止在 cscart 中创建用户

How to stop the creation of user in cscart using update_profile hook

function fn_user_registered_test_update_profile($action, $user_data, 
$current_user_data){

$encoded=json_encode($user_data);
extract(json_decode($encoded, true));

if($user_type == "C"){

if ($action == "add"){

  $url = 'http://199.99.999.99:9999/api/users'; // url is different
  $data = array('email'=>$email,'name'=>$firstname,'type'=>'customer');
  $data_json = json_encode($data);

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

  $result = curl_exec($ch);
  curl_close($ch);
  }
  }

我正在从 CSCart 创建一个新用户并注册一个区块链,

如果区块链出现故障,我希望在 cs cart 停止创建用户

如果此响应不是状态 200,我希望停止创建用户

有没有办法停止使用标志创建用户?

您可以编写一个带有 .pre 扩展名的控制器,这样它会在核心控制器之前执行,这样您就可以 'deny' 如果满足某些参数,则可以创建用户。在此处阅读有关控制器的更多信息:

https://docs.cs-cart.com/4.8.x/developer_guide/core/controllers/pre_postcontrollers.html

亲切的问候,

调用此挂钩时,新用户已添加到数据库中。在这种情况下,您应该使用 fn_delete_user($user_data['user_id']); 函数从数据库中删除新用户