| Server IP : 87.229.120.60 / Your IP : 216.73.216.86 Web Server : Apache System : Linux outside 5.4.8_Algonet_ZeroMAC_0.9.4.8 #6 SMP Mon Feb 3 20:36:07 CET 2020 x86_64 User : server ( 1002) PHP Version : 8.3.20 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,parse_ini_file,show_source MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/faktorteam/www/wp-content/plugins/wpforms-lite/src/Admin/Education/ |
Upload File : |
<?php
namespace WPForms\Admin\Education;
/**
* Base class for all "addons list" type Education features.
*
* @since 1.6.6
*/
abstract class AddonsListBase extends AddonsItemBase {
/**
* Display addons.
*
* @since 1.6.6
*/
public function display_addons() {
array_map( [ $this, 'display_single_addon' ], (array) $this->get_addons() );
}
/**
* Get addons.
*
* @since 1.6.6
*
* @return array Addons array.
*/
abstract protected function get_addons();
/**
* Ensure that we do not display activated addon items if those addons are not allowed according to the current license.
*
* @since 1.6.6
*
* @param string $hook Hook name.
*/
protected function filter_not_allowed_addons( $hook ) {
$edu_addons = wp_list_pluck( $this->get_addons(), 'slug' );
foreach ( $edu_addons as $i => $addon ) {
$edu_addons[ $i ] = strtolower( preg_replace( '/[^a-zA-Z0-9]+/', '', $addon ) );
}
if ( empty( $GLOBALS['wp_filter'][ $hook ]->callbacks ) ) {
return;
}
foreach ( $GLOBALS['wp_filter'][ $hook ]->callbacks as $priority => $hooks ) {
foreach ( $hooks as $name => $arr ) {
$class = ! empty( $arr['function'][0] ) && is_object( $arr['function'][0] ) ? strtolower( get_class( $arr['function'][0] ) ) : '';
$class = explode( '\\', $class )[0];
$class = preg_replace( '/[^a-zA-Z0-9]+/', '', $class );
if ( in_array( $class, $edu_addons, true ) ) {
unset( $GLOBALS['wp_filter'][ $hook ]->callbacks[ $priority ][ $name ] );
}
}
}
}
}