: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
* Class WP_Review_Options
class WP_Review_Options {
add_action( 'admin_menu', array( $this, 'register_menu' ) );
add_action( 'admin_init', array( $this, 'register_settings' ) );
public function register_menu() {
$hide = wp_review_network_option( 'hide_global_options_' );
$this->hook = add_options_page(
__( 'WP Review', 'wp-review' ),
__( 'WP Review', 'wp-review' ),
'wp_review_global_options',
'wp-review/admin/options.php',
add_action( "load-{$this->hook}", array( $this, 'load' ) );
* Runs some functions on page load.
add_filter( 'admin_body_class', array( $this, 'admin_body_classes' ) );
* Adds classes to body tag.
* @param string $classes Body classes.
public function admin_body_classes( $classes ) {
$classes .= ' wp-review-admin-options';
public function register_settings() {
register_setting( 'wpreview-settings-group', 'wp_review_options' );
* Gets options page tabs.
protected function get_tabs() {
'title' => __( 'Global', 'wp-review' ),
'capability' => 'wp_review_global_options',
'multisite_enabled' => 'hide_global_options_',
'title' => __( 'Popup', 'wp-review' ),
'capability' => 'manage_options',
'multisite_enabled' => 'hide_general_popup_',
'title' => __( 'Notification Bar', 'wp-review' ),
'capability' => 'manage_options',
'multisite_enabled' => 'hide_general_bar_',
'title' => __( 'Yelp Reviews', 'wp-review' ),
'capability' => 'manage_options',
'multisite_enabled' => 'hide_yelp_reviews_',
'title' => __( 'Google Reviews', 'wp-review' ),
'capability' => 'manage_options',
'multisite_enabled' => 'hide_google_reviews_',
'title' => __( 'Facebook Reviews', 'wp-review' ),
'capability' => 'manage_options',
'multisite_enabled' => 'hide_facebook_reviews_',
'title' => __( 'Role Manager', 'wp-review' ),
'capability' => 'administrator',
'multisite_enabled' => 'hide_role_manager_',
'title' => __( 'Import Reviews', 'wp-review' ),
'capability' => 'wp_review_import_reviews',
'multisite_enabled' => 'hide_import_',
'title' => __( 'Help', 'wp-review' ),
'icon' => 'question-circle',
'capability' => 'manage_options',
'multisite_enabled' => 'hide_help_',
foreach ( $tabs_content as $key => $tab ) {
$hide = wp_review_network_option( $tab['multisite_enabled'] );
if ( current_user_can( $tab['capability'] ) && ! $hide ) {
'title' => $tab['title'],
'icon' => 'fa fa-' . $tab['icon'],
'view' => WP_REVIEW_ADMIN . 'options/' . $key . '.php',
if ( is_multisite() && is_main_site() && current_user_can( 'administrator' ) ) {
'id' => 'multisite_settings',
'title' => __( 'Multisite Settings', 'wp-review' ),
'icon' => 'fa fa-sitemap',
'view' => WP_REVIEW_ADMIN . 'options/multisite.php',
public function render() {
$tabs = $this->get_tabs();
<div class="wrap wp-review">
<h1><?php esc_html_e( 'WP Review Settings', 'wp-review' ); ?></h1>
<form method="post" action="options.php">
<?php settings_fields( 'wpreview-settings-group' ); ?>
<div id="wpr-global-options" class="wpr-vertical-tabs" data-vertical-tabs>
<ul class="wpr-vertical-tabs__titles">
<?php foreach ( $tabs as $tab ) : ?>
<li class="wpr-vertical-tabs__title"><a href="#<?php echo esc_attr( $tab['id'] ); ?>" data-tab-title><i class="<?php echo esc_html( $tab['icon'] ); ?>"></i> <?php echo esc_html( $tab['title'] ); ?></a></li>
<div class="wpr-vertical-tabs__contents">
<?php foreach ( $tabs as $tab ) : ?>
<div id="<?php echo esc_attr( $tab['id'] ); ?>" class="wpr-vertical-tabs__content" data-tab-content>
<h2><?php echo esc_html( $tab['title'] ); ?></h2>
<?php include $tab['view']; ?>
<?php submit_button(); ?>
$options_page = new WP_Review_Options();