File: /storage/v4513/tepnot/public_html/wp-content/plugins/dokan-pro/modules/razorpay/module.php
<?php
namespace WeDevs\DokanPro\Modules\Razorpay;
use WeDevs\Dokan\Traits\ChainableContainer;
use WeDevs\DokanPro\Modules\Razorpay\Blocks\BlockHooks;
use WeDevs\DokanPro\Modules\Razorpay\Cart\CartHandler;
use WeDevs\DokanPro\Modules\Razorpay\Order\OrderController;
use WeDevs\DokanPro\Modules\Razorpay\Order\OrderManager;
use WeDevs\DokanPro\Modules\Razorpay\Refund\Refund;
use WeDevs\DokanPro\Modules\Razorpay\PaymentMethods\Razorpay;
use WeDevs\DokanPro\Modules\Razorpay\Gateways\RegisterGateways;
use WeDevs\DokanPro\Modules\Razorpay\WithdrawMethods\RegisterWithdrawMethods;
use WeDevs\DokanPro\Modules\Razorpay\BackgroundProcess\DelayDisburseFund;
use WeDevs\DokanPro\Modules\Razorpay\WithdrawMethods\VendorLinkedAccount;
// use WeDevs\DokanPro\Modules\Razorpay\Webhook\WebhookHandler;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
/**
* Class Module.
*
* @package WeDevs\Dokan\Gateways
*
* @see https://razorpay.com/docs/api For Related API's
*
* @since 3.5.0
*/
class Module {
use ChainableContainer;
/**
* @var string
*/
private static $class_name;
/**
* Manager constructor.
*
* @since 3.5.0
* @return void
*/
public function __construct() {
$this->define_constants();
$this->set_controllers();
// Activation and Deactivation hook for this module.
add_action( 'dokan_activated_module_razorpay', [ $this, 'activate' ], 10, 1 );
add_action( 'dokan_deactivated_module_razorpay', [ $this, 'deactivate' ], 10, 1 );
// Set default template directory for this module.
add_filter( 'dokan_set_template_path', [ $this, 'load_razorpay_templates' ], 10, 3 );
}
/**
* Get plugin path.
*
* @since 3.5.0
*
* @return string
**/
public function plugin_path() {
return untrailingslashit( plugin_dir_path( __FILE__ ) );
}
/**
* Define module constants.
*
* @since 3.5.0
*
* @return void
*/
private function define_constants() {
define( 'DOKAN_RAZORPAY_FILE', __FILE__ );
define( 'DOKAN_RAZORPAY_PATH', dirname( DOKAN_RAZORPAY_FILE ) );
define( 'DOKAN_RAZORPAY_ASSETS', plugin_dir_url( DOKAN_RAZORPAY_FILE ) . 'assets/' );
define( 'DOKAN_RAZORPAY_TEMPLATE_PATH', dirname( DOKAN_RAZORPAY_FILE ) . '/templates/' );
}
/**
* Set controllers.
*
* @since 3.5.0
*
* @return void
*/
private function set_controllers() {
$this->container['order_manager'] = new OrderManager();
$this->container['register_gateways'] = new RegisterGateways();
$this->container['linked_account'] = new VendorLinkedAccount();
$this->container['withdraw_methods'] = new RegisterWithdrawMethods();
$this->container['gateway_razorpay'] = new Razorpay();
$this->container['cart_handler'] = new CartHandler();
$this->container['order_controller'] = new OrderController();
$this->container['refund'] = new Refund();
$this->container['delay_disburse_bg'] = new DelayDisburseFund();
if ( version_compare( wc()->version, '8.4.0', '>=' ) ) {
$this->container['bock_hooks'] = new BlockHooks();
}
// $this->container['webhook'] = new WebhookHandler();
}
/**
* Load Dokan Razorpay templates.
*
* @since 3.5.0
*
* @return string
*/
public function load_razorpay_templates( $template_path, $template, $args ) {
if ( isset( $args['is_razorpay'] ) && $args['is_razorpay'] ) {
return $this->plugin_path() . '/templates';
}
return $template_path;
}
/**
* Activate Module.
*
* @since 3.5.0
*/
public function activate( $instance ) {
// $instance->container['webhook']->register_webhook();
if ( ! wp_next_scheduled( 'dokan_razorpay_daily_schedule' ) ) {
wp_schedule_event( time(), 'twicedaily', 'dokan_razorpay_daily_schedule' );
}
}
/**
* De-activate Module.
*
* @since 3.5.0
*/
public function deactivate( $instance ) {
// $instance->container['webhook']->deregister_webhook();
// clear scheduled task
wp_clear_scheduled_hook( 'dokan_razorpay_daily_schedule' );
}
}