: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
public static function renderForm($formFields)
$allowed_html = AdminHelper::allowed_html_tags();
if (empty($formFields) || !is_array($formFields)) {
$form = '<form class="sgpb-form" id="sgpb-form" method="post">';
$fields = '<div class="sgpb-form-wrapper">';
foreach ($formFields as $fieldKey => $formField) {
if (!empty($formField['attrs']['type'])) {
$type = $formField['attrs']['type'];
if ($type == 'customCheckbox') {
$formField['attrs']['type'] = 'checkbox';
$errorMessageBoxStyles = '';
if (!isset($formField['attrs']['name']) || $formField['attrs']['name'] == '') {
$errorWrapperClassName = (isset($formField['attrs']['name']) ? $formField['attrs']['name'] : '').'-error-message';
if (isset($formField['errorMessageBoxStyles'])) {
$errorMessageBoxStyles = 'style="width:'.$formField['errorMessageBoxStyles'].'"';
if (!empty($formField['label'])) {
$label = $formField['label'];
if (isset($formField['text'])) {
$gdprText = $formField['text'];
$formField['style'] = array('color' => $color, 'width' => $formField['style']['width']);
$gdprWrapperStyles = 'style="color:'.$color.'"';
if ($type == 'checkbox') {
$formField['style']['max-width'] = $formField['style']['width'];
unset($formField['style']['width']);
if (!empty($formField['style'])) {
if (isset($formField['attrs']['name']) && strpos($formField['attrs']['name'], 'gdpr') !== false) {
unset($formField['style']['height']);
foreach ($formField['style'] as $styleKey => $styleValue) {
if ($styleKey == 'placeholder') {
$styles .= $styleKey.':'.$styleValue.'; ';
if (!empty($formField['attrs'])) {
foreach ($formField['attrs'] as $attrKey => $attrValue) {
$attrs .= $attrKey.' = "'.esc_attr($attrValue).'" ';
if (isset($formField['isShow']) && !$formField['isShow']) {
$hideClassName = 'sgpb-js-hide';
if (in_array($type, $simpleElements)) {
if (!isset($formField['attrs']['hasLabel']) || !$formField['attrs']['hasLabel']) {
$htmlElement = self::createInputElement($attrs, $styles, $errorWrapperClassName, $errorMessageBoxStyles, $params);
else if ($type == 'checkbox') {
$htmlElement = self::createCheckbox($attrs, $styles);
else if ($type == 'customCheckbox') {
$label = $formField['label'];
if (isset($formField['text'])) {
$gdprText = $formField['text'];
$formField['style'] = array(
'width' => isset($formField['style']['width']) ? $formField['style']['width'] : ''
$gdprWrapperStyles = 'style="color:'.$color.'"';
$htmlElement = self::createGdprCheckbox($attrs, $styles, $label, $gdprWrapperStyles, $gdprText);
else if ($type == 'textarea') {
$htmlElement = self::createTextArea($attrs, $styles, $errorWrapperClassName);
<div class="sgpb-inputs-wrapper js-<?php echo esc_attr($fieldKey); ?>-wrapper js-sgpb-form-field-<?php echo esc_attr($fieldKey); ?>-wrapper <?php echo esc_attr($hideClassName); ?>">
<?php echo wp_kses($htmlElement, $allowed_html); ?>
$fields .= ob_get_contents();
public static function createInputElement($attrs, $styles = '', $errorWrapperClassName = '', $errorMessageBoxStyles = '', $labelArgs = array())
$inputElement = "<input $attrs $styles>";
if (!empty($labelArgs)) {
if (isset($labelArgs['attrs']['sgpb-login-username'])) {
$loginUsername = $labelArgs['attrs']['sgpb-login-username'];
$labelClass = isset($labelArgs['attrs']['labelClass']) ? $labelArgs['attrs']['labelClass'] : '';
$hasLabel = isset($labelArgs['attrs']['hasLabel']) ? $labelArgs['attrs']['hasLabel'] : '';
$inputElement = '<label for="'.$loginUsername.'"><p class="sgpb-login-input-label '.$labelClass.'">'.$hasLabel.'</p>'.$inputElement.'</label>';
if (!empty($errorWrapperClassName)) {
$inputElement .= "<div class='$errorWrapperClassName'></div>";
public static function createCheckbox($attrs, $styles)
$inputElement = "<input $attrs $styles>";
public static function createGdprCheckbox($attrs, $styles, $label = '', $gdprWrapperStyles = '', $text = '')
$inputElement = "<input $attrs>";
$inputElement = '<div class="sgpb-gdpr-label-wrapper" '.$styles.'>'.$inputElement.'<label class="js-login-remember-me-label-edit" for="sgpb-gdpr-field-label">'.$label.'</label><div class="sgpb-gdpr-error-message"></div></div>';
$text = html_entity_decode($text);
$inputElement .= '<div class="sgpb-alert-info sgpb-alert sgpb-gdpr-info js-subs-text-checkbox sgpb-gdpr-text-js" '.$styles.'>'.wp_kses($text, AdminHelper::allowed_html_tags(false)).'</div>';
public static function createTextArea($attrs, $styles, $errorWrapperClassName = '')
$inputElement = "<textarea $attrs $styles></textarea>";
if (!empty($errorWrapperClassName)) {
$inputElement .= "<div class='$errorWrapperClassName'></div>";
public static function getDatabaseEngine()
$result = $wpdb->get_results( $wpdb->prepare( "SELECT ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = %s" , $dbName), ARRAY_A);
$usersTableName = $wpdb->prefix."users";
$result = $wpdb->get_results( $wpdb->prepare( "SHOW TABLE STATUS WHERE Name = '$usersTableName' AND Engine = %s", 'MyISAM' ), ARRAY_A);
if (isset($result[0]['Engine']) && $result[0]['Engine'] == 'MyISAM') {
public static function getIpAddress()
if (getenv('HTTP_CLIENT_IP')) {
$ipAddress = getenv('HTTP_CLIENT_IP');
else if (getenv('HTTP_X_FORWARDED_FOR')) {
$ipAddress = getenv('HTTP_X_FORWARDED_FOR');
else if (getenv('HTTP_X_FORWARDED')) {
$ipAddress = getenv('HTTP_X_FORWARDED');
else if (getenv('HTTP_FORWARDED_FOR')) {
$ipAddress = getenv('HTTP_FORWARDED_FOR');
else if (getenv('HTTP_FORWARDED')) {
$ipAddress = getenv('HTTP_FORWARDED');
else if (getenv('REMOTE_ADDR')) {
$ipAddress = getenv('REMOTE_ADDR');
public static function clearAllTransients()
global $SGPB_TRANSIENT_CONFIG;
if (empty($SGPB_TRANSIENT_CONFIG)) {
foreach ($SGPB_TRANSIENT_CONFIG as $eachTransient) {
delete_transient($eachTransient);