<?php
if( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
if( ! class_exists('ACF_Location_User_Form') ) :
class ACF_Location_User_Form extends ACF_Location {
/**
* initialize
*
* Sets up the class functionality.
*
* @date 5/03/2014
* @since 5.0.0
*
* @param void
* @return void
*/
function initialize() {
$this->name = 'user_form';
$this->label = __("User Form", 'acf');
$this->category = 'user';
}
/**
* rule_match
*
* Determines if the given location $rule is a match for the current $screen.
*
* @date 17/9/19
* @since 5.8.1
*
* @param bool $result Whether or not this location rule is a match.
* @param array $rule The locatio rule data.
* @param array $screen The current screen data.
* @return bool
*/
function rule_match( $result, $rule, $screen ) {
// Extract vars.
$user_form = acf_maybe_get($screen, 'user_form');
// Return false if no user_form data.
if( !$user_form ) {
return false;
}
// The "Add / Edit" choice (foolishly valued "edit") should match true for either "add" or "edit".
if( $rule['value'] === 'edit' && $user_form === 'add' ) {
$user_form = 'edit';
}
// Compare and return.
return $this->compare( $user_form, $rule );
}
/**
* rule_values
*
* Returns an array of values for this location rule.
*
* @date 17/9/19
* @since 5.8.1
*
* @param array $choices An empty array.
* @param array $rule The locatio rule data.
* @return type Description.
*/
function rule_values( $choices, $rule ) {
return array(
'all' => __('All', 'acf'),
'add' => __('Add', 'acf'),
'edit' => __('Add / Edit', 'acf'),
'register' => __('Register', 'acf')
);
}
}
// Register.
acf_register_location_rule( 'ACF_Location_User_Form' );
endif; // class_exists check