39290-vm/wp-content/plugins/stripe-payments/includes/class-asp-daily-txn-counter.php
2026-03-26 12:55:30 +00:00

91 lines
2.8 KiB
PHP

<?php
class ASP_Daily_Txn_Counter {
private $asp_main = null;
private $txn_counter_option_name;
//private $txn_counter_limit;
private $today;
public function __construct() {
$this->txn_counter_option_name = 'asp_daily_txn_count_args';
$this->asp_main = AcceptStripePayments::get_instance();
$this->today = date("Y-m-d");
}
//Resets or get the current counter
public function asp_get_daily_txn_counter_args() {
$txn_counter_args = get_option($this->txn_counter_option_name);
if (!$txn_counter_args) {
//If txn_counter don't exists , create and return new as zero
return $this->asp_reset_daily_txn_counter();
} else {
if (isset($txn_counter_args["counter_date"]) == false || $this->today != $txn_counter_args["counter_date"] ) {
return $this->asp_reset_daily_txn_counter();
}
}
return $txn_counter_args;
}
public function asp_increment_daily_txn_counter() {
$txn_counter_args = $this->asp_get_daily_txn_counter_args();
$txn_counter_args["counter"]++;
update_option($this->txn_counter_option_name, $txn_counter_args);
return $txn_counter_args;
}
public function asp_set_txn_counter_value( $count ) {
$txn_counter_args = $this->asp_get_daily_txn_counter_args();
$txn_counter_args["counter"] = $count;
update_option($this->txn_counter_option_name, $txn_counter_args);
}
public function asp_is_daily_txn_limit_reached($is_captcha_enabled=false) {
$txn_counter_args = $this->asp_get_daily_txn_counter_args();
$txn_counter_limit = 0;
if( $is_captcha_enabled == true ) {
$txn_counter_limit = $this->asp_main->get_setting('daily_txn_limit_with_captcha');
} else {
$txn_counter_limit = $this->asp_main->get_setting('daily_txn_limit_without_captcha');
}
if ( !$txn_counter_limit ) {
$txn_counter_limit = 25;
}
if ( $txn_counter_args["counter"] >= $txn_counter_limit ) {
return true;
}
return false;
}
public function asp_is_daily_tnx_limit_with_captcha_enabled()
{
$daily_txn_limit_with_captcha = $this->asp_main->get_setting('daily_txn_limit_with_captcha');
if(empty($daily_txn_limit_with_captcha)){
return true;
}
if($daily_txn_limit_with_captcha && $daily_txn_limit_with_captcha >= 0) {
return true;
}
return false;
}
private function asp_reset_daily_txn_counter() {
$txn_counter_args = array('counter_date' => $this->today, 'counter' => 0);
update_option($this->txn_counter_option_name, $txn_counter_args);
return $txn_counter_args;
}
}