web/wp-content/plugins/acf-extended/includes/init.php (76 lines of code) (raw):
<?php
if(!defined('ABSPATH')){
exit;
}
/**
* acfe_has_acf
*
* Checks ACF version
*
* @return bool
*/
function acfe_has_acf(){
return class_exists('ACF') && defined('ACF_PRO') && defined('ACF_VERSION') && version_compare(ACF_VERSION, '5.8', '>=');
}
/**
* acfe_is_acf_admin_6
*
* @return bool
*/
function acfe_is_acf_6(){
return acf_version_compare(acf_get_setting('version'), '>=', '6.0');
}
/**
* acfe_is_acf_admin_61
*
* @return bool
*/
function acfe_is_acf_61(){
return acf_version_compare(acf_get_setting('version'), '>=', '6.1');
}
/**
* acfe_include
*
* Includes a file within the plugin
*
* @param $filename
* @param $once
*
* @return false|mixed
*/
function acfe_include($filename = '', $once = true){
$file_path = acfe_get_path($filename);
if(file_exists($file_path)){
if($once){
return include_once($file_path);
}else{
return include($file_path);
}
}
return false;
}
/**
* acfe_get_path
*
* Returns the plugin path
*
* @param string $filename
*
* @return string
*/
function acfe_get_path($filename = ''){
return ACFE_PATH . ltrim($filename, '/');
}
/**
* acfe_get_url
*
* Returns the plugin url
*
* @param string $filename
*
* @return string
*/
function acfe_get_url($filename = ''){
if(!defined('ACFE_URL')){
define('ACFE_URL', acf_get_setting('acfe/url'));
}
return ACFE_URL . ltrim($filename, '/');
}
/**
* acfe_get_view
*
* Load in a file from the 'admin/views' folder and allow variables to be passed through
* Based on acf_get_view()
*
* @param string $path
* @param array $args
*/
function acfe_get_view($path = '', $args = array()){
// allow view file name shortcut
if(substr($path, -4) !== '.php'){
$path = acfe_get_path("includes/admin/views/{$path}.php");
}
// include
if(file_exists($path)){
extract($args);
include($path);
}
}
/**
* acfe_load_textdomain
*
* Load textdomain files based on acf_load_textdomain()
*
* @param string $domain
*
* @return bool
*/
function acfe_load_textdomain($domain = 'acfe'){
$locale = apply_filters('plugin_locale', acf_get_locale(), $domain);
$mofile = $domain . '-' . $locale . '.mo';
// Try to load from the languages directory first.
if(load_textdomain($domain, WP_LANG_DIR . '/plugins/' . $mofile)){
return true;
}
// Load from plugin lang folder.
return load_textdomain($domain, acfe_get_path('lang/' . $mofile));
}
/**
* acfe_after_plugin_row
*
* after_plugin_row
*
* @param $plugin_file
* @param $plugin_data
* @param $status
*/
add_action('after_plugin_row_' . ACFE_BASENAME, 'acfe_after_plugin_row', 5, 3);
function acfe_after_plugin_row($plugin_file, $plugin_data, $status){
// bail early
if(acfe_has_acf()){
return;
}
// vars
$colspan = version_compare($GLOBALS['wp_version'], '5.5', '<') ? 3 : 4;
// class
$class = 'acfe-plugin-tr';
if(isset($plugin_data['update']) && !empty($plugin_data['update'])){
$class .= ' acfe-plugin-tr-update';
}
?>
<style>
.plugins tr[data-plugin='<?php echo $plugin_file; ?>'] th,
.plugins tr[data-plugin='<?php echo $plugin_file; ?>'] td{
box-shadow:none;
}
</style>
<tr class="plugin-update-tr active <?php echo $class; ?>">
<td colspan="<?php echo $colspan; ?>" class="plugin-update colspanchange">
<div class="update-message notice inline notice-error notice-alt">
<p><?php _e('ACF Extended requires <a href="https://www.advancedcustomfields.com/pro/" target="_blank">Advanced Custom Fields PRO</a> (minimum: 5.8).', 'acfe'); ?></p>
</div>
</td>
</tr>
<?php
}