File Editor
Directories:
.. (Back)
EasyDigitalDownloads
Elementor
Integrations
MemberPress
Plugins
Promos
Rules
Shortcodes
WPForms
WooCommerce
Files:
Actions.php
Ajax.php
Api.php
ApiAuth.php
ApiKey.php
AssetLoader.php
BaseRestApi.php
Blocks.php
ClassicEditor.php
ConstantContact.php
Debug.php
EasyDigitalDownloads.php
Elementor.php
Inserter.php
InstallSkin.php
InstallSkinCompat.php
MailPoet.php
MemberPress.php
Menu.php
Notifications.php
OmuApi.php
Output.php
Pages.php
Partners.php
Plugins.php
Promos.php
Refresh.php
RestApi.php
RevenueAttribution.php
Review.php
Rules.php
Save.php
Shortcode.php
Sites.php
Support.php
Type.php
Urls.php
Utils.php
Validate.php
WPForms.php
Welcome.php
Widget.php
WooCommerce.php
Wordfence.php
WpErrorException.php
Create New File
Create
Edit File: MemberPress.php
<?php /** * MemberPress class. * * @since 2.13.0 * * @package OMAPI * @author Eduardo Nakatsuka */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * The MemberPress class. * * @since 2.13.0 */ class OMAPI_MemberPress extends OMAPI_Integrations_Base { /** * Holds the OMAPI_MemberPress_Courses class instance. * * @since 2.13.0 * * @var OMAPI_MemberPress_Courses */ public $courses; /** * Holds the OMAPI_MemberPress_ProductEducation class instance. * * @since 2.13.5 * * @var OMAPI_MemberPress_ProductEducation */ public $education; /** * The minimum MemberPress version required. * * @since 2.13.0 * * @var string */ const MINIMUM_VERSION = '1.9.39'; /** * Primary class constructor. * * @since 2.13.0 */ public function __construct() { parent::__construct(); // Set our object. $this->courses = new OMAPI_MemberPress_Courses( $this ); $this->education = new OMAPI_MemberPress_ProductEducation(); if ( self::is_active() && self::is_minimum_version() ) { add_filter( 'optin_monster_campaigns_js_api_args', array( $this, 'add_args' ) ); add_filter( 'optin_monster_api_setting_ui_data', array( $this, 'add_args' ) ); wp_enqueue_style( $this->base->plugin_slug . '-memberpress', $this->base->url . 'assets/dist/css/memberpress.min.css', array(), $this->base->asset_version() ); $this->education->add_meta_box(); } } /** * Check if the MemberPress plugin is active. * * @since 2.13.0 * * @return boolean */ public static function is_active() { return defined( 'MEPR_PLUGIN_SLUG' ) && class_exists( 'MeprCptModel', true ); } /** * Return the MemberPress Plugin version string. * * @since 2.13.0 * * @return string */ public static function version() { return defined( 'MEPR_VERSION' ) ? MEPR_VERSION : '0.0.0'; } /** * Adds the `memberpress` object to payload, which is passed to the JS frontend. * * @since 2.13.0 * * @param array $args This is the array of parameters that will be passed to the JS file. * @return array $args The array with the `memberpress` payload. */ public function add_args( $args ) { $args['memberpress'] = array( 'groups' => self::format_data( $this->retrieve_mp_data( 'MeprGroup' ) ), 'memberships' => self::format_data( $this->retrieve_mp_data( 'MeprProduct' ) ), 'isActive' => self::is_active(), 'isCoursesActive' => OMAPI_MemberPress_Courses::is_active(), 'checkoutTemplateEnabled' => self::isProTemplateEnabled( 'checkout' ), ); $args['memberpress'] = array_merge( $args['memberpress'], $this->courses->get_args() ); return $args; } /** * Format data to be consumed by the front-end admin output settings. * * @since 2.13.0 * * @param array $payload The data to be formatted. * @return array The formatted data */ public static function format_data( $payload ) { $data = array(); if ( empty( $payload ) || ! is_array( $payload ) ) { return $data; } foreach ( $payload as $entity ) { $data[] = array( 'value' => $entity->ID, 'label' => $entity->post_title, 'name' => $entity->post_title, ); } return $data; } /** * Retrieve MemberPress model data. * * @since 2.13.0 * * @param string $model The entity model name. * @return array The array model data. */ private function retrieve_mp_data( $model ) { // Bail if MemberPress isn't currently active. if ( ! self::is_active() || ! self::is_minimum_version() ) { return array(); } $data = MeprCptModel::all( $model ); if ( empty( $data ) ) { return array(); } return $data; } /** * Determine if a "pro" template is enabled. * * @param string $name The template name. * @return boolean True if enabled. */ public static function isProTemplateEnabled( $name ) { if ( ! class_exists( 'MeprOptions', true ) ) { return false; } $options = MeprOptions::fetch(); $attribute = 'design_enable_' . $name . '_template'; return ! empty( $options->$attribute ) && filter_var( $options->$attribute, FILTER_VALIDATE_BOOLEAN ); } }
Save Changes
Rename File
Rename