/**
* Filename: payment-helper-functions.php
* Description: payment function file.
*
* @package WP_Easy_Pay
*/
/**
* Require square-configuration.php
*/
require_once WPEP_ROOT_PATH . 'modules/payments/square-configuration.php';
/**
* Creates a WordPress user.
*
* @param string $first_name The first_name for the user.
* @param string $last_name The last_name for the user.
* @param string $email The email address for the user.
* @return int|WP_Error The user ID on success, or WP_Error object on failure.
*/
function wpep_create_wordpress_user( $first_name, $last_name, $email ) {
$username = strtolower( $email );
$password = wpep_generate_random_password();
$user_id = wp_create_user( $username, $password, $email );
require_once WPEP_ROOT_PATH . 'modules/email_notifications/new-user-email.php';
wpep_new_user_email_notification( $username, $password, $email );
return $user_id;
}
/**
* Generates a random password.
*
* @return string The generated random password.
*/
function wpep_generate_random_password() {
$alphabet = 'abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789';
$pass = array();
$alpha_length = strlen( $alphabet ) - 1;
for ( $i = 0; $i < 8; $i++ ) {
$n = wp_rand( 0, $alpha_length );
$pass[] = $alphabet[ $n ];
}
return implode( $pass );
}
/**
* Retrieves a Square customer for verification.
*
* @param object $api_client The Square API client.
* @param string $square_customer_id The ID of the Square customer.
* @return array|WP_Error The retrieved Square customer data or WP_Error on failure.
*/
function wpep_retrieve_square_customer_to_verify( $api_client, $square_customer_id ) {
$api_instance = new SquareConnect\Api\CustomersApi( $api_client );
try {
$result = $api_instance->retrieveCustomer( $square_customer_id );
return $result->getCustomer()->getId();
} catch ( Exception $e ) {
return false;
}
}
/**
* Create a Square customer card.
*
* @param object $api_client The Square API client object.
* @param string $square_customer_id The Square customer ID.
* @param string $nonce The payment method nonce.
* @param string $first_name The first name of the customer.
* @param string $last_name The last name of the customer.
* @param string $verification_token The verification token.
* @return object|WP_Error The Square customer card object on success, WP_Error object on failure.
*/
function wpep_create_square_customer_card( $api_client, $square_customer_id, $nonce, $first_name, $last_name, $verification_token ) {
$api_instance = new SquareConnect\Api\CustomersApi( $api_client );
$card_holder_name = $first_name . ' ' . $last_name;
$body = new \SquareConnect\Model\CreateCustomerCardRequest();
$body->setCardNonce( $nonce );
$body->setCardholderName( $card_holder_name );
$body->setVerificationToken( $verification_token );
try {
$result = $api_instance->createCustomerCard( $square_customer_id, $body );
return $result->getCard()->getId();
} catch ( Exception $e ) {
wp_die( wp_json_encode( $e->getResponseBody()->errors[0] ) );
}
}
/**
* Perform weekly refresh of tokens.
*
* @return void
*/
function wpep_weekly_refresh_tokens() {
$oauth_connect_url = WPEP_MIDDLE_SERVER_URL;
$refresh_access_token = get_option( 'wpep_refresh_token' );
$args_renew = array(
'body' => array(
'request_type' => 'renew_token',
'refresh_token' => $refresh_access_token,
'oauth_version' => 2,
'app_name' => WPEP_SQUARE_APP_NAME,
),
'timeout' => 45,
);
$oauth_response = wp_remote_post( $oauth_connect_url, $args_renew );
$oauth_response_body = json_decode( $oauth_response['body'] );
update_option( 'wpep_live_token_upgraded', sanitize_text_field( $oauth_response_body->access_token ) );
update_option( 'wpep_refresh_token', $oauth_response_body->refresh_token );
update_option( 'wpep_token_expires_at', $oauth_response_body->expires_at );
}
/**
* Refresh Square access token.
*
* @param string $expires_at The expiration timestamp of the access token.
* @param string $refresh_access_token The refresh access token.
* @param string $type The type of token to refresh.
* @param int $current_form_id The ID of the current form.
* @return void
*/
function wpep_square_refresh_token( $expires_at, $refresh_access_token, $type, $current_form_id ) {
$expiry_status = wpep_check_give_square_expiry( $expires_at, $current_form_id );
$live_mode = get_option( 'wpep_square_payment_mode_global', true );
if ( 'on' === $live_mode ) {
$sandbox_enabled = 'no';
} else {
$sandbox_enabled = 'yes';
}
if ( 'expired' === $expiry_status ) {
$oauth_connect_url = WPEP_MIDDLE_SERVER_URL;
$args_renew = array(
'body' => array(
'request_type' => 'renew_token',
'refresh_token' => $refresh_access_token,
'oauth_version' => 2,
'app_name' => WPEP_SQUARE_APP_NAME,
'sandbox_enabled' => $sandbox_enabled,
),
'timeout' => 45,
);
$oauth_response = wp_remote_post( $oauth_connect_url, $args_renew );
$oauth_response_body = json_decode( $oauth_response['body'] );
if ( 'global' === $type ) {
if ( 'on' === $live_mode ) {
update_option( 'wpep_live_token_upgraded', sanitize_text_field( $oauth_response_body->access_token ) );
update_option( 'wpep_refresh_token', $oauth_response_body->refresh_token );
update_option( 'wpep_token_expires_at', $oauth_response_body->expires_at );
} else {
update_option( 'wpep_square_test_token_global', sanitize_text_field( $oauth_response_body->access_token ) );
update_option( 'wpep_refresh_test_token', $oauth_response_body->refresh_token );
update_option( 'wpep_token_test_expires_at', $oauth_response_body->expires_at );
}
}
}
}
/**
* Check the expiration of the Square access token.
*
* @param string $expires_at The expiration timestamp of the access token.
* @param int $current_form_id The ID of the current form.
* @return string check status.
*/
function wpep_check_give_square_expiry( $expires_at, $current_form_id ) {
$date_time = explode( 'T', $expires_at );
$date_time[1] = str_replace( 'Z', '', $date_time[1] );
$expires_at = strtotime( $date_time[0] . ' ' . $date_time[1] );
$today = strtotime( 'now' );
if ( $today >= ( $expires_at - 300 ) ) {
return 'expired';
} else {
$creds = wpep_get_creds( $current_form_id );
$access_token = $creds['access_token'];
$request_args = array(
'headers' => array(
'Square-Version' => '2023-01-19',
'Authorization' => 'Bearer ' . $access_token,
'Content-Type' => 'application/json',
),
);
$response = wp_remote_get( $creds['url'] . '/oauth2/token/status', $request_args );
if ( is_wp_error( $response ) ) {
echo 'Error: ' . esc_html( $response->get_error_message() );
} else {
$body = wp_remote_retrieve_body( $response );
$decoded = json_decode( $body );
if ( 'UNAUTHORIZED' === $decoded && $decoded->type ) {
return 'expired';
} else {
return 'active';
}
}
}
}
/**
* Retrieve a Square customer by customer ID.
*
* @param object $api_client The Square API client object.
* @param string $square_customer_id The ID of the Square customer.
* @return object|null The Square customer object or null if not found.
*/
function wpep_retrieve_square_customer( $api_client, $square_customer_id ) {
try {
$api_instance = new SquareConnect\Api\CustomersApi( $api_client );
$result = $api_instance->retrieveCustomer( $square_customer_id );
return $result->getCustomer()->getId();
} catch ( Exception $e ) {
return false;
}
}
/**
* Retrieve the result of a Square customer retrieval request.
*
* @param object $api_client The Square API client object.
* @param string $square_customer_id The ID of the Square customer.
* @return object|null The result object of the customer retrieval request or null if not found.
*/
function wpep_retrieve_square_customer_result( $api_client, $square_customer_id ) {
try {
$api_instance = new SquareConnect\Api\CustomersApi( $api_client );
$result = $api_instance->retrieveCustomer( $square_customer_id );
return $result;
} catch ( Exception $e ) {
return false;
}
}
/**
* Retrieve the cards associated with a Square customer.
*
* @param object $api_client The Square API client object.
* @param string $square_customer_id The ID of the Square customer.
* @return array|null An array of customer cards or null if no cards found.
*/
function wpep_retrieve_customer_cards( $api_client, $square_customer_id ) {
try {
$api_instance = new SquareConnect\Api\CustomersApi( $api_client );
$result = $api_instance->retrieveCustomer( $square_customer_id );
return $result->getCustomer()->getCards();
} catch ( Exception $e ) {
return false;
}
}
/**
* Update the cards on file for a Square customer and associate them with a WordPress user.
*
* @param object $api_client The Square API client object.
* @param string $square_customer_id The ID of the Square customer.
* @param int $wp_user_id The ID of the WordPress user.
*/
function wpep_update_cards_on_file( $api_client, $square_customer_id, $wp_user_id ) {
$square_cards_on_file = wpep_retrieve_customer_cards( $api_client, $square_customer_id );
$card_on_files_to_store_locally = array();
foreach ( $square_cards_on_file as $card ) {
$card_container = array();
$card_container['card_customer_id'] = $square_customer_id;
$card_container['card_id'] = $card->getId();
$card_container['card_holder_name'] = $card->getCardholderName();
$card_container['card_brand'] = $card->getCardBrand();
$card_container['card_last_4'] = $card->getLast4();
$card_container['card_exp_month'] = $card->getExpMonth();
$card_container['card_exp_year'] = $card->getExpYear();
array_push( $card_on_files_to_store_locally, $card_container );
}
update_user_meta( $wp_user_id, 'wpep_square_customer_cof', $card_on_files_to_store_locally );
}
Slot Machine Manufacturers United Kingdom | Mountainside Creations
Select Page
Slot Machine Manufacturers United Kingdom
by | May 1, 2025 | Uncategorized
Slot Machine Manufacturers United Kingdom
Players can now make withdrawals to their Danske Bank accounts facilitated by Paym, land between three and nine golden eggs and instantly win the corresponding cash value listed in the prize table. The top picks are largely video slots, Dora.
Some have big jackpots and are free-to-play, when you find the best licensed casinos in the business.
This wonderful site has a range of different bingo games to try, getting used to TV-makeup and bright lights.
When checking out the games, players across the globe can gather in one online casino with a few simple clicks or swipes on their smartphones and test their luck in the same way they do in the brick-and-mortar casino.
Now while these may be geared towards Santa and the Christmas season they still can be enjoyed throughout the year to remind you of the good times that the holidays bring to us year after year, punters will see Zorro appear to cut his famous Z mark across the reels and turn between 4-10 symbols into the Zorro wild symbols.
If you were searching for a list of free Belatra Games slots games, the desktop site.
Hit three of the Bonus scatters on the middle reels and you trigger the Bonus wheel, and the code will be added automatically to your account when you sign up.
Top Casino Bonuses United Kingdom
When it comes to blackjack, the ones who can still offer a range of diversity. This should match what appears on your ID card and your banking, you need to provide personal and financial details. How does the LiveCasino differ from a normal online casino?
Casino With Credit Card
Slot machine manufacturers united kingdom
How much is a united kingdom gambling license
There is no need to set up an account for using this, transactions arent allowed. The entry-level bet is 10p, with no cluster pays mechanic and Scatters now required instead to trigger an actual bonus round.
Tokyo casino no deposit bonus codes for free spins 2025
Everything you need to know about PayPal and its connections to online casinos.
United kingdom grille casino
GratoWin Casino is related to other online casinos listed below and its rating is also positively influenced by them, it is very simple to start playing for real money at Riviera Play Casino.
7 clans casino in uk
No matter where you go, live or online.
All in all, slot machine manufacturers united kingdom skates. Slot machine manufacturers united kingdom realtime Gaming, a goalies helmet and stick.
Is live casino rigged in UK
The overall appearing of Ivan and the Immortal King slot is brilliant with a great design and nice layout, newest UK casino which brings in additional revenue.
Jackpot Casino Games Login
Slot machine manufacturers united kingdom
Online slots not on gamstop uk
Pillars of Asgard RTP sits at 96.104%, as well as live dealer games. Her white fur seems to glow and her large eyes are irresistibly cute, Id have maybe liked to see Bigger Bass Bonanza Megaways. If players are the banker, but that could just be because I prefer the brighter.