: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
defined( 'ABSPATH' ) || exit;
class WWS_Admin_Metabox {
public function __construct() {
add_action( 'add_meta_boxes', array( $this, 'add_custom_box' ) );
add_action( 'save_post', array( $this, 'save_postdata' ) );
public function add_custom_box() {
'wwsMetaboxDiv', // Unique ID
esc_html__( 'WordPress WhatsApp Support', 'wc-wws' ), // Box title
array( $this, 'custom_box_html' ), // Content callback, must be of type callable
apply_filters( 'wws_post_metabox_screens', array( 'post', 'page', 'product' ) ), // Post type
public function custom_box_html( $post ) {
$support_contact_number = get_post_meta( $post->ID, '_wws_support_contact_number', true );
$about_support_text = get_post_meta( $post->ID, '_wws_about_support_text', true );
$trigger_button_text = get_post_meta( $post->ID, '_wws_trigger_button_text', true );
$predefined_text = get_post_meta( $post->ID, '_wws_predefined_text', true );
<?php do_action( 'wws_admin_post_metabox_notice' ); ?>
<?php if ( $this->is_single_support() ) : ?>
<div class="components-base-control">
<div class="components-base-control__field">
<label for="" class="components-base-control__label"><?php esc_html_e( 'Support Contact Number', 'wc-wws' ); ?></label>
<input type="text" class="components-select-control__input" name="_wws_support_contact_number" value="<?php echo esc_attr( $support_contact_number ); ?>">
<div class="components-base-control">
<div class="components-base-control__field">
<label for="" class="components-base-control__label"><?php esc_html_e( 'About Support Text', 'wc-wws' ); ?></label>
<textarea class="components-textarea-control__input" name="_wws_about_support_text" rows="5" style="width: 100%;"><?php echo esc_textarea( $about_support_text ); ?></textarea>
<?php if ( $this->is_single_support() ) : ?>
<div class="components-base-control">
<div class="components-base-control__field">
<label for="" class="components-base-control__label"><?php esc_html_e( 'Predefined Message', 'wc-wws' ); ?></label>
<textarea class="components-textarea-control__input" name="_wws_predefined_text" rows="5" style="width: 100%;"><?php echo esc_textarea( $predefined_text ); ?></textarea>
<p class="description"><?php echo wp_kses_post( sprintf( __( '%s to display current page title in chat.<br>%s to display current page URL in chat.<br>%s to break the line into a new line.', 'wc-wws' ), '<code>{title}</code>', '<code>{url}</code>', '<code>{br}</code>' ) ) ?></p>
<div class="components-base-control">
<div class="components-base-control__field">
<label for="" class="components-base-control__label"><?php esc_html_e( 'Trigger Button Text', 'wc-wws' ); ?></label>
<input type="text" class="components-select-control__input" name="_wws_trigger_button_text" value="<?php echo esc_attr( $trigger_button_text ); ?>">
public function save_postdata( $post_id ) {
if ( array_key_exists( '_wws_support_contact_number', $_POST ) ) {
'_wws_support_contact_number',
sanitize_text_field( $_POST['_wws_support_contact_number'] )
if ( array_key_exists( '_wws_about_support_text', $_POST ) ) {
'_wws_about_support_text',
sanitize_textarea_field( $_POST['_wws_about_support_text'] )
if ( array_key_exists( '_wws_trigger_button_text', $_POST ) ) {
'_wws_trigger_button_text',
sanitize_textarea_field( $_POST['_wws_trigger_button_text'] )
if ( array_key_exists( '_wws_predefined_text', $_POST ) ) {
sanitize_textarea_field( $_POST['_wws_predefined_text'] )
private function is_single_support() {
return in_array( get_option( 'wws_layout' ), array( '1', '2', '3', '4', '7' ) );