I would not rely on the version number so I wrote that
if ( class_exists( 'acf' ) ) {
$all_fields = array();
if ( defined( 'ACF_PRO' ) ) {
$field_groups = acf_get_field_groups();
foreach ( $field_groups as $f_group ) {
$group_fields = acf_get_fields( $f_group );
foreach ( $group_fields as $f ) {
$all_fields[] = $f;
}
}
} else {
$field_groups = apply_filters( 'acf/get_field_groups', array() );
foreach ( $field_groups as $f_group ) {
$group_fields = apply_filters( 'acf/field_group/get_fields', array(), $f_group[ 'id' ] );
foreach ( $group_fields as $f ) {
$all_fields[] = $f;
}
}
}
var_dump( $all_fields );
}
I want to get the stored fields, post-independent. There is no function like get_all_registered_fields()
so I wrote something like that. And there the differences between the free and the PRO versions matter. See my first post. There I described the reason.
Do you mean function_exists( 'acf_get_setting' )
?
Since I do not need the version number but the information whether the installed ACF plugin is the free version or the PRO version I built that code:
$is_acf_free = $is_acf_pro = false;
if ( class_exists( 'acf' ) {
if ( defined( 'ACF_PRO' ) ) {
$is_acf_pro = true;
} else {
$is_acf_free = true;
}
}
It raises an error if the free ACF plugin is installed.