How to change or add user role after getting post request data about pay?

How to change or add user role after getting post request data about pay?

qiwi2.php file in theme folder:

?php
include($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');

$qiwi = [
    public_key = *,
    secret_key = *,
    successUrl = https://someurl/
];

$secret_key = $qiwi['secret_key'];

$sha256_hash_header = $_SERVER['HTTP_X_API_SIGNATURE_SHA256']; 
$entity_body = file_get_contents('php://input');

$array_body = json_decode($entity_body, 1);

$amount_currency = $array_body['bill']['amount']['currency'];
$amount_value = $array_body['bill']['amount']['value'];
$billId = $array_body['bill']['billId'];
$siteId = $array_body['bill']['siteId'];
$status_value = $array_body['bill']['status']['value'];
$account = $array_body['bill']['customer']['account'];

$invoice_parameters = $amount_currency.|.$amount_value.|.$billId.|.$siteId.|.$status_value.|.$account;
$invoice_parameters=(string) $invoice_parameters;
    
$sha256_hash = hash_hmac('sha256', $invoice_parameters, $secret_key);

if (!empty($sha256_hash_header)  strcmp($sha256_hash_header, $sha256_hash) === 0  $status_value == 'PAID') {

    $user = get_user_by( 'id', $account);
    $user-set_role( 'subscriber' );

} else {
    http_response_code(404);
    die();
}
?

I try this lines:

$user = get_user_by( 'id', $account);
$user-set_role( 'subscriber' );

but got user role None;

and I add this line to the beginning of the file for these functions to work:

include($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');

And I understand that it's looking something very not right. But don't know how to do it the correct way.

Topic user-roles functions Wordpress

Category Web

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.