53 lines
1.4 KiB
PHP
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']);
|
|
}
|
|
}
|