: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
namespace WPForms\Lite\Admin\Settings;
use WPForms\Admin\Education\Helpers;
public function __construct() {
public function hooks() {
add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ] );
add_filter( 'wpforms_settings_tabs', [ $this, 'add_tab' ] );
add_filter( 'wpforms_settings_defaults', [ $this, 'add_section' ] );
public function enqueues() {
if ( ! wpforms_is_admin_page( 'settings', self::SLUG ) ) {
WPFORMS_PLUGIN_URL . 'assets/lib/lity/lity.min.css',
WPFORMS_PLUGIN_URL . 'assets/lib/lity/lity.min.js',
* @param array $tabs Array of tabs.
* @return array Array of tabs.
public function add_tab( $tabs ) {
'name' => esc_html__( 'Access', 'wpforms-lite' ),
return wpforms_list_insert_after( $tabs, 'geolocation', $tab );
* Add Access settings section.
* @param array $settings Settings sections.
public function add_section( $settings ) {
$settings[ self::SLUG ][ self::SLUG . '-page' ] = [
'id' => self::SLUG . '-page',
'content' => wpforms_render( 'education/admin/page', $this->template_data(),true ),
private function template_data(): array {
$images_url = WPFORMS_PLUGIN_URL . 'assets/images/lite-settings-access/';
__( 'Create Forms', 'wpforms-lite' ),
__( 'Delete Forms', 'wpforms-lite' ),
__( 'Edit Forms Entries', 'wpforms-lite' ),
__( 'Edit Forms', 'wpforms-lite' ),
__( 'Delete Others Forms', 'wpforms-lite' ),
__( 'Edit Others Forms Entries', 'wpforms-lite' ),
__( 'Edit Others Forms', 'wpforms-lite' ),
__( 'View Forms Entries', 'wpforms-lite' ),
__( 'Delete Forms Entries', 'wpforms-lite' ),
__( 'View Forms', 'wpforms-lite' ),
__( 'View Others Forms Entries', 'wpforms-lite' ),
__( 'Delete Others Forms Entries', 'wpforms-lite' ),
__( 'View Others Forms', 'wpforms-lite' ),
'url' => $images_url . 'screenshot-access-controls.png',
'url2x' => $images_url . 'screenshot-access-controls@2x.png',
'title' => __( 'Simple Built-in Controls', 'wpforms-lite' ),
'url' => $images_url . 'screenshot-members.png',
'url2x' => $images_url . 'screenshot-members@2x.png',
'title' => __( 'Members Integration', 'wpforms-lite' ),
'url' => $images_url . 'screenshot-user-role-editor.png',
'url2x' => $images_url . 'screenshot-user-role-editor@2x.png',
'title' => __( 'User Role Editor Integration', 'wpforms-lite' ),
'utm_medium' => 'Settings - Access',
'utm_content' => 'Access Controls',
'heading_title' => __( 'Access Controls', 'wpforms-lite' ),
'heading_description' => sprintf(
__( 'Access controls allows you to manage and customize access to WPForms functionality. You can easily grant or restrict access using the simple built-in controls, or use our official integrations with Members and User Role Editor plugins.', 'wpforms-lite' )
'badge' => __( 'Pro', 'wpforms-lite' ),
'features_description' => __( 'Custom access to the following capabilities…', 'wpforms-lite' ),
* Generate and output section "Heading" row HTML.
public function output_section_row_heading() {
_deprecated_function( __METHOD__, '1.8.6 of the WPForms plugin' );
'<h4>%1$s%2$s</h4><p>%3$s</p><p>%4$s</p>',
esc_html__( 'Access Controls', 'wpforms-lite' ),
Helpers::get_badge( 'Pro' ),
esc_html__( 'Access controls allows you to manage and customize access to WPForms functionality.', 'wpforms-lite' ),
esc_html__( 'You can easily grant or restrict access using the simple built-in controls, or use our official integrations with Members and User Role Editor plugins.', 'wpforms-lite' )
* Generate and output section "Screenshots" row HTML.
public function output_section_row_screenshots() {
_deprecated_function( __METHOD__, '1.8.6 of the WPForms plugin' );
$format = '<div class="cont">
<img src="%1$s" srcset="%2$s 2x" alt="%6$s"/>
<a href="%3$s" class="hover" data-lity data-lity-srcset="%4$s 2x" data-lity-desc="%6$s"></a>
$images_url = WPFORMS_PLUGIN_URL . 'assets/images/lite-settings-access/';
esc_url( $images_url . 'thumbnail-access-controls.png' ),
esc_url( $images_url . 'thumbnail-access-controls@2x.png' ),
esc_url( $images_url . 'screenshot-access-controls.png' ),
esc_url( $images_url . 'screenshot-access-controls@2x.png' ),
esc_html__( 'Simple Built-in Controls', 'wpforms-lite' ),
esc_attr( esc_html__( 'Simple Built-in Controls', 'wpforms-lite' ) )
esc_url( $images_url . 'thumbnail-members.png' ),
esc_url( $images_url . 'thumbnail-members@2x.png' ),
esc_url( $images_url . 'screenshot-members.png' ),
esc_url( $images_url . 'screenshot-members@2x.png' ),
esc_html__( 'Members Integration', 'wpforms-lite' ),
esc_attr( esc_html__( 'Members Integration', 'wpforms-lite' ) )
esc_url( $images_url . 'thumbnail-user-role-editor.png' ),
esc_url( $images_url . 'thumbnail-user-role-editor@2x.png' ),
esc_url( $images_url . 'screenshot-user-role-editor.png' ),
esc_url( $images_url . 'screenshot-user-role-editor@2x.png' ),
esc_html__( 'User Role Editor Integration', 'wpforms-lite' ),
esc_attr( esc_html__( 'User Role Editor Integration', 'wpforms-lite' ) )
* Generate and output section "Capabilities" row HTML.
public function output_section_row_caps() {
_deprecated_function( __METHOD__, '1.8.6 of the WPForms plugin' );
esc_html__( 'Create Forms', 'wpforms-lite' ),
esc_html__( 'Edit Forms', 'wpforms-lite' ),
esc_html__( 'Edit Others Forms', 'wpforms-lite' ),
esc_html__( 'View Forms', 'wpforms-lite' ),
esc_html__( 'View Others Forms', 'wpforms-lite' ),
esc_html__( 'Delete Forms', 'wpforms-lite' ),
esc_html__( 'Delete Others Forms', 'wpforms-lite' ),
esc_html__( 'View Forms Entries', 'wpforms-lite' ),
esc_html__( 'View Others Forms Entries', 'wpforms-lite' ),
esc_html__( 'Edit Forms Entries', 'wpforms-lite' ),
esc_html__( 'Edit Others Forms Entries', 'wpforms-lite' ),
esc_html__( 'Delete Forms Entries', 'wpforms-lite' ),
esc_html__( 'Delete Others Forms Entries', 'wpforms-lite' ),
$content = '<p>' . esc_html__( 'Custom access to the following capabilities…', 'wpforms-lite' ) . '</p>';
foreach ( $caps as $column ) {
foreach ( $column as $cap ) {
$content .= '<li>' . $cap . '</li>';
* Generate and output section "Upgrade to Pro" row HTML.
public function output_section_row_upgrade_to_pro() {
_deprecated_function( __METHOD__, '1.8.6 of the WPForms plugin' );
'<a href="%1$s" target="_blank" rel="noopener noreferrer" class="wpforms-upgrade-modal wpforms-btn wpforms-btn-lg wpforms-btn-orange">%2$s</a>',
esc_url( wpforms_admin_upgrade_link( 'Settings - Access', 'Access Controls' ) ),
esc_html__( 'Upgrade to WPForms Pro', 'wpforms-lite' )