Requirements
Class handle requirement checking
Description
Source
File: bp-integrations/learndash/core/Requirements.php
class Requirements
{
protected $requirements = [];
protected $checkedRequirements = [];
/**
* Constructor
*
* @since BuddyBoss 1.0.0
*/
public function __construct()
{
$this->requirements = [
'bp_group_component' => [
'callback' => ['bp_is_active', ['groups']],
'error' => sprintf(
__('BuddyBoss Platform component %s needs to be enabled.', 'buddyboss'),
'<b>' . __('Social Groups', 'buddyboss') . '</b>'
)
]
];
add_action('bp_ld_sync/depencencies_loaded', [$this, 'checkForRequirements']);
}
/**
* Check if each requirement is satisfied
*
* @since BuddyBoss 1.0.0
*/
public function checkForRequirements()
{
foreach ($this->requirements as $name => $data) {
if (! call_user_func_array('call_user_func_array', $data['callback'])) {
continue;
}
$this->checkedRequirements[] = $name;
}
$success = count($this->requirements) == count($this->checkedRequirements);
do_action($success? 'bp_ld_sync/requirements_checked' : 'bp_ld_sync/requirements_failed', $this);
}
/**
* Get the missing requirements
*
* @since BuddyBoss 1.0.0
*/
public function getMissingRequirements()
{
return array_diff_key($this->requirements, array_flip($this->checkedRequirements));
}
/**
* Get the passed requirements
*
* @since BuddyBoss 1.0.0
*/
public function getLoadedRequirements()
{
return array_intersect_key($this->requirements, array_flip($this->checkedRequirements));
}
}
Changelog
| Version | Description |
|---|---|
| BuddyBoss 1.0.0 | Introduced. |
Methods
- __construct — Constructor
- checkForRequirements — Check if each requirement is satisfied
- getLoadedRequirements — Get the passed requirements
- getMissingRequirements — Get the missing requirements
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.