Files
wordpress-theme-aksrt/src/Payment/CreatorRevenue.php
T

53 lines
1.4 KiB
PHP

<?php
/**
* @package AKSRT
*/
namespace AKSRT\Payment;
defined('ABSPATH') || exit;
class CreatorRevenue {
private static ?CreatorRevenue $instance = null;
public static function get_instance(): self {
if (null === self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
public function init(): void {
add_action('aksrt_creator_income_settlement', [$this, 'settle_due']);
if (!wp_next_scheduled('aksrt_creator_income_settlement')) {
wp_schedule_event(time() + HOUR_IN_SECONDS, 'hourly', 'aksrt_creator_income_settlement');
}
}
public function settle_due(): void {
if (class_exists('AKSRT\\Payment\\Revenue')) {
Revenue::get_instance()->settle_due(100, 0);
}
}
/**
* Create creator income after content entitlement has been delivered.
*
* @param array<string,mixed> $order
*/
public function create_from_paid_order(array $order): int {
if (!$this->is_enabled() || !class_exists('AKSRT\\Payment\\Revenue')) {
return 0;
}
return Revenue::get_instance()->create_from_paid_order($order);
}
private function is_enabled(): bool {
if (!class_exists('AKSRT\\Settings\\Settings')) {
return false;
}
return !empty(\AKSRT\Settings\Settings::get_payment_revenue_settings()['enabled']);
}
}