requireParameters( [ 'model', 'column', ] ); $column = $this->parameter('column'); $model = $this->parameter('model'); $self_id = $this->parameter('self_id'); switch ($model) { case '\WP_User': $callback = 'get_user_by'; break; default: $callback = [$model, 'get_by']; break; } // do query $existing = call_user_func($callback, $column, $value); $user_models = [ '\WP_User', \WP_Ultimo\Models\Customer::class, ]; /* * Customize the error message for the customer. */ if (in_array($model, $user_models, true)) { $this->message = __('A customer with the same email address or username already exists.', 'wp-multisite-waas'); } if ( ! $existing) { return true; } if ( $existing instanceof \WP_User) { $id = $existing->ID; } else { $id = method_exists($existing, 'get_id') ? $existing->get_id() : $existing->id; } return absint($id) === absint($self_id); } }