array( 'mailsender' => true, 'from' => $from, 'subject' => $subject, 'message' => $message, 'module' => $module, ), ) ); if ( is_wp_error( $response ) ) { wp_send_json_error(); } wp_send_json_success(); } wp_send_json_error(); } /** * Creates and adds the module instance to the container. * * @param Merchant_Add_Module $module The module instance. * * @return void */ public static function create_module( Merchant_Add_Module $module ) { static::instance()->container[ $module->module_id ] = $module; } /** * Get the module instance. * * @param string $module_id The module ID. * * @return Merchant_Add_Module|mixed The module instance. */ public static function get_module( $module_id ) { return static::instance()->container[ $module_id ]; } /** * Determines if a module has already been added to the container. * * @param string $module_id The module ID. * * @return bool */ public static function is_module_created( $module_id ) { return in_array( $module_id, static::instance()->container, true ); } /** * Check if a specific module is activated */ public static function is_module_active( $module ) { /** * Hook 'merchant_module_{$module}_deactivate' * * @since 1.0 */ if ( apply_filters( "merchant_module_{$module}_deactivate", false ) ) { add_filter( "merchant_admin_module_{$module}_list_item_class", static function( $class_name ) { return $class_name . ' merchant-module-deactivated-by-bp'; } ); return false; } $modules = get_option( self::$option, array() ); // Preview Mode if ( isset( $_GET['preview'] ) && isset( $_GET['module'] ) && $_GET['module'] === $module && current_user_can( 'manage_options' ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended return true; } // Preview Mode $operation_mode = Merchant_Option::get( 'global-settings', 'operating_mode', 'active' ); if ( 'inactive' === $operation_mode ) { return false; } elseif ( 'preview' === $operation_mode && ! current_user_can( 'manage_options' ) ) { return false; } if ( is_array( $modules ) && array_key_exists( $module, $modules ) && true === $modules[ $module ] ) { return true; } return false; } } Merchant_Modules::instance(); }