deep-web-solutions/wordpress-framework-settings

View on GitHub
src/includes/Handlers/MetaBoxSettingsHandler.php

Summary

Maintainability
A
1 hr
Test Coverage
<?php

namespace DeepWebSolutions\Framework\Settings\Handlers;

use DeepWebSolutions\Framework\Settings\AbstractSettingsHandler;
use DeepWebSolutions\Framework\Settings\Adapters\MetaBoxSettingsAdapter;
use DeepWebSolutions\Framework\Settings\SettingsActionsEnum;

\defined( 'ABSPATH' ) || exit;

/**
 * Handles the interoperability layer between the DWS framework and the Meta Box settings framework.
 *
 * @since   1.0.0
 * @version 1.0.0
 * @author  Antonius Hegyes <a.hegyes@deep-web-solutions.com>
 * @package DeepWebSolutions\WP-Framework\Settings\Handlers
 */
class MetaBoxSettingsHandler extends AbstractSettingsHandler {
    // region MAGIC METHODS

    /**
     * Meta Box Handler constructor.
     *
     * @since   1.0.0
     * @version 1.0.0
     *
     * @param   string                          $handler_id     The ID of the settings handler.
     * @param   MetaBoxSettingsAdapter|null     $adapter        Instance of the adapter to the Meta Box settings framework.
     */
    public function __construct( string $handler_id = 'meta-box', ?MetaBoxSettingsAdapter $adapter = null ) {
        parent::__construct( $handler_id, $adapter ?? new MetaBoxSettingsAdapter() );
    }

    // endregion

    // region INHERITED METHODS

    /**
     * {@inheritDoc}
     *
     * @since   1.0.0
     * @version 1.0.0
     */
    public function get_action_hook( string $context ): string {
        switch ( $context ) {
            case SettingsActionsEnum::REGISTER_OPTIONS_GROUP:
                return 'mb_settings_page_load';
            default:
                return 'init';
        }
    }

    // endregion
}