setup_hooks(); } /** * Wire up WordPress and ACF actions and filters. * * @return void */ private function setup_hooks(): void { // Environment notices. Compat::register_notices(); // Field type registration on acf/init. add_action( 'acf/init', array( $this, 'register_field_type' ) ); // Asset management. Assets::register_hooks(); // JSON Export & Import endpoints. Export::register_hooks(); } /** * Register the RepeaterKit field type with ACF or SCF. * * @return void */ public function register_field_type(): void { if ( ! function_exists( 'acf_register_field_type' ) ) { return; } if ( ! class_exists( 'RepeaterKit\RepeaterKit_Field' ) ) { require_once REPEATERKIT_PATH . 'includes/class-rpk-field.php'; } if ( class_exists( 'RepeaterKit\RepeaterKit_Field' ) ) { $this->field_type = acf_register_field_type( 'RepeaterKit\RepeaterKit_Field' ); Logger::debug( 'RepeaterKit field type registered successfully.', 'bootstrap' ); } } }