Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/wpforms-.../includes/admin
File: class-about.php
<?php
[0] Fix | Delete
[1] Fix | Delete
if ( ! defined( 'ABSPATH' ) ) {
[2] Fix | Delete
exit;
[3] Fix | Delete
}
[4] Fix | Delete
[5] Fix | Delete
/**
[6] Fix | Delete
* About WPForms admin page class.
[7] Fix | Delete
*
[8] Fix | Delete
* @since 1.5.0
[9] Fix | Delete
*/
[10] Fix | Delete
class WPForms_About {
[11] Fix | Delete
[12] Fix | Delete
/**
[13] Fix | Delete
* Admin menu page slug.
[14] Fix | Delete
*
[15] Fix | Delete
* @since 1.5.0
[16] Fix | Delete
*
[17] Fix | Delete
* @var string
[18] Fix | Delete
*/
[19] Fix | Delete
const SLUG = 'wpforms-about';
[20] Fix | Delete
[21] Fix | Delete
/**
[22] Fix | Delete
* Default view for a page.
[23] Fix | Delete
*
[24] Fix | Delete
* @since 1.5.0
[25] Fix | Delete
*
[26] Fix | Delete
* @var string
[27] Fix | Delete
*/
[28] Fix | Delete
const DEFAULT_TAB = 'about';
[29] Fix | Delete
[30] Fix | Delete
/**
[31] Fix | Delete
* Array of license types, that are considered being top level and has no features difference.
[32] Fix | Delete
*
[33] Fix | Delete
* @since 1.5.0
[34] Fix | Delete
*
[35] Fix | Delete
* @var array
[36] Fix | Delete
*/
[37] Fix | Delete
public static $licenses_top = [ 'pro', 'agency', 'ultimate', 'elite' ];
[38] Fix | Delete
[39] Fix | Delete
/**
[40] Fix | Delete
* List of features that licenses are different with.
[41] Fix | Delete
*
[42] Fix | Delete
* @since 1.5.0
[43] Fix | Delete
*
[44] Fix | Delete
* @var array
[45] Fix | Delete
*/
[46] Fix | Delete
public static $licenses_features = [];
[47] Fix | Delete
[48] Fix | Delete
/**
[49] Fix | Delete
* The current active tab.
[50] Fix | Delete
*
[51] Fix | Delete
* @since 1.5.0
[52] Fix | Delete
*
[53] Fix | Delete
* @var string
[54] Fix | Delete
*/
[55] Fix | Delete
public $view;
[56] Fix | Delete
[57] Fix | Delete
/**
[58] Fix | Delete
* The core views.
[59] Fix | Delete
*
[60] Fix | Delete
* @since 1.5.0
[61] Fix | Delete
*
[62] Fix | Delete
* @var array
[63] Fix | Delete
*/
[64] Fix | Delete
public $views = [];
[65] Fix | Delete
[66] Fix | Delete
/**
[67] Fix | Delete
* Primary class constructor.
[68] Fix | Delete
*
[69] Fix | Delete
* @since 1.5.0
[70] Fix | Delete
*/
[71] Fix | Delete
public function __construct() {
[72] Fix | Delete
[73] Fix | Delete
$this->hooks();
[74] Fix | Delete
}
[75] Fix | Delete
[76] Fix | Delete
/**
[77] Fix | Delete
* Register hooks.
[78] Fix | Delete
*
[79] Fix | Delete
* @since 1.8.2.3
[80] Fix | Delete
*/
[81] Fix | Delete
private function hooks() {
[82] Fix | Delete
[83] Fix | Delete
// Maybe load tools page.
[84] Fix | Delete
add_action( 'admin_init', [ $this, 'init' ] );
[85] Fix | Delete
}
[86] Fix | Delete
[87] Fix | Delete
/**
[88] Fix | Delete
* Determining if the user is viewing our page, if so, party on.
[89] Fix | Delete
*
[90] Fix | Delete
* @since 1.5.0
[91] Fix | Delete
*/
[92] Fix | Delete
public function init() {
[93] Fix | Delete
[94] Fix | Delete
// Check what page we are on.
[95] Fix | Delete
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
[96] Fix | Delete
$page = isset( $_GET['page'] ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : '';
[97] Fix | Delete
[98] Fix | Delete
// Only load if we are actually on the settings page.
[99] Fix | Delete
if ( $page !== self::SLUG ) {
[100] Fix | Delete
return;
[101] Fix | Delete
}
[102] Fix | Delete
[103] Fix | Delete
/*
[104] Fix | Delete
* Define the core views for our tab.
[105] Fix | Delete
*/
[106] Fix | Delete
$this->views = apply_filters(
[107] Fix | Delete
'wpforms_admin_about_views',
[108] Fix | Delete
[
[109] Fix | Delete
esc_html__( 'About Us', 'wpforms-lite' ) => [ 'about' ],
[110] Fix | Delete
esc_html__( 'Getting Started', 'wpforms-lite' ) => [ 'getting-started' ],
[111] Fix | Delete
]
[112] Fix | Delete
);
[113] Fix | Delete
[114] Fix | Delete
$license = $this->get_license_type();
[115] Fix | Delete
[116] Fix | Delete
if (
[117] Fix | Delete
(
[118] Fix | Delete
$license === 'pro' ||
[119] Fix | Delete
! in_array( $license, self::$licenses_top, true )
[120] Fix | Delete
) ||
[121] Fix | Delete
wpforms_debug()
[122] Fix | Delete
) {
[123] Fix | Delete
$vs_tab_name = sprintf( /* translators: %1$s - current license type, %2$s - suggested license type. */
[124] Fix | Delete
esc_html__( '%1$s vs %2$s', 'wpforms-lite' ),
[125] Fix | Delete
ucfirst( $license ),
[126] Fix | Delete
$this->get_next_license( $license )
[127] Fix | Delete
);
[128] Fix | Delete
[129] Fix | Delete
$this->views[ $vs_tab_name ] = [ 'versus' ];
[130] Fix | Delete
}
[131] Fix | Delete
[132] Fix | Delete
// Determine the current active settings tab.
[133] Fix | Delete
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
[134] Fix | Delete
$this->view = ! empty( $_GET['view'] ) ? sanitize_text_field( wp_unslash( $_GET['view'] ) ) : self::DEFAULT_TAB;
[135] Fix | Delete
[136] Fix | Delete
// If the user tries to load an invalid view - fallback to About Us.
[137] Fix | Delete
if (
[138] Fix | Delete
! in_array( $this->view, call_user_func_array( 'array_merge', array_values( $this->views ) ), true ) &&
[139] Fix | Delete
! has_action( 'wpforms_admin_about_display_tab_' . sanitize_key( $this->view ) )
[140] Fix | Delete
) {
[141] Fix | Delete
$this->view = self::DEFAULT_TAB;
[142] Fix | Delete
}
[143] Fix | Delete
[144] Fix | Delete
add_action( 'wpforms_admin_page', [ $this, 'output' ] );
[145] Fix | Delete
[146] Fix | Delete
// Hook for addons.
[147] Fix | Delete
do_action( 'wpforms_admin_about_init' );
[148] Fix | Delete
}
[149] Fix | Delete
[150] Fix | Delete
/**
[151] Fix | Delete
* Output the basic page structure.
[152] Fix | Delete
*
[153] Fix | Delete
* @since 1.5.0
[154] Fix | Delete
*/
[155] Fix | Delete
public function output() {
[156] Fix | Delete
[157] Fix | Delete
$show_nav = false;
[158] Fix | Delete
foreach ( $this->views as $view ) {
[159] Fix | Delete
if ( in_array( $this->view, (array) $view, true ) ) {
[160] Fix | Delete
$show_nav = true;
[161] Fix | Delete
break;
[162] Fix | Delete
}
[163] Fix | Delete
}
[164] Fix | Delete
?>
[165] Fix | Delete
[166] Fix | Delete
<div id="wpforms-admin-about" class="wrap wpforms-admin-wrap">
[167] Fix | Delete
[168] Fix | Delete
<?php
[169] Fix | Delete
if ( $show_nav ) {
[170] Fix | Delete
$license = $this->get_license_type();
[171] Fix | Delete
$next_license = $this->get_next_license( $license );
[172] Fix | Delete
echo '<ul class="wpforms-admin-tabs">';
[173] Fix | Delete
foreach ( $this->views as $label => $view ) {
[174] Fix | Delete
$class = in_array( $this->view, $view, true ) ? 'active' : '';
[175] Fix | Delete
echo '<li>';
[176] Fix | Delete
printf(
[177] Fix | Delete
'<a href="%s" class="%s">%s</a>',
[178] Fix | Delete
esc_url( admin_url( 'admin.php?page=' . self::SLUG . '&view=' . sanitize_key( $view[0] ) ) ),
[179] Fix | Delete
esc_attr( $class ),
[180] Fix | Delete
esc_html( $label )
[181] Fix | Delete
);
[182] Fix | Delete
echo '</li>';
[183] Fix | Delete
}
[184] Fix | Delete
echo '</ul>';
[185] Fix | Delete
}
[186] Fix | Delete
?>
[187] Fix | Delete
[188] Fix | Delete
<h1 class="wpforms-h1-placeholder"></h1>
[189] Fix | Delete
[190] Fix | Delete
<?php
[191] Fix | Delete
[192] Fix | Delete
switch ( $this->view ) {
[193] Fix | Delete
case 'about':
[194] Fix | Delete
$this->output_about();
[195] Fix | Delete
break;
[196] Fix | Delete
[197] Fix | Delete
case 'getting-started':
[198] Fix | Delete
$this->output_getting_started();
[199] Fix | Delete
break;
[200] Fix | Delete
[201] Fix | Delete
case 'versus':
[202] Fix | Delete
$this->output_versus();
[203] Fix | Delete
break;
[204] Fix | Delete
[205] Fix | Delete
default:
[206] Fix | Delete
do_action( 'wpforms_admin_about_display_tab_' . sanitize_key( $this->view ) );
[207] Fix | Delete
break;
[208] Fix | Delete
}
[209] Fix | Delete
[210] Fix | Delete
?>
[211] Fix | Delete
[212] Fix | Delete
</div>
[213] Fix | Delete
[214] Fix | Delete
<?php
[215] Fix | Delete
}
[216] Fix | Delete
[217] Fix | Delete
/**
[218] Fix | Delete
* Display the About tab content.
[219] Fix | Delete
*
[220] Fix | Delete
* @since 1.5.0
[221] Fix | Delete
*/
[222] Fix | Delete
protected function output_about() {
[223] Fix | Delete
[224] Fix | Delete
$this->output_about_info();
[225] Fix | Delete
$this->output_about_addons();
[226] Fix | Delete
}
[227] Fix | Delete
[228] Fix | Delete
/**
[229] Fix | Delete
* Display the General Info section of About tab.
[230] Fix | Delete
*
[231] Fix | Delete
* @since 1.5.8
[232] Fix | Delete
*/
[233] Fix | Delete
protected function output_about_info() {
[234] Fix | Delete
[235] Fix | Delete
?>
[236] Fix | Delete
[237] Fix | Delete
<div class="wpforms-admin-about-section wpforms-admin-columns">
[238] Fix | Delete
[239] Fix | Delete
<div class="wpforms-admin-column-60">
[240] Fix | Delete
<h3>
[241] Fix | Delete
<?php esc_html_e( 'Hello and welcome to WPForms, the most beginner friendly drag & drop WordPress forms plugin. At WPForms, we build software that helps you create beautiful responsive online forms for your website in minutes.', 'wpforms-lite' ); ?>
[242] Fix | Delete
</h3>
[243] Fix | Delete
<p>
[244] Fix | Delete
<?php esc_html_e( 'Over the years, we found that most WordPress contact form plugins were bloated, buggy, slow, and very hard to use. So we started with a simple goal: build a WordPress forms plugin that’s both easy and powerful.', 'wpforms-lite' ); ?>
[245] Fix | Delete
</p>
[246] Fix | Delete
<p>
[247] Fix | Delete
<?php esc_html_e( 'Our goal is to take the pain out of creating online forms and make it easy.', 'wpforms-lite' ); ?>
[248] Fix | Delete
</p>
[249] Fix | Delete
<p>
[250] Fix | Delete
<?php
[251] Fix | Delete
printf(
[252] Fix | Delete
wp_kses( /* translators: %1$s - WPBeginner URL, %2$s - OptinMonster URL, %3$s - MonsterInsights URL. */
[253] Fix | Delete
__( 'WPForms is brought to you by the same team that’s behind the largest WordPress resource site, <a href="%1$s" target="_blank" rel="noopener noreferrer">WPBeginner</a>, the most popular lead-generation software, <a href="%2$s" target="_blank" rel="noopener noreferrer">OptinMonster</a>, the best WordPress analytics plugin, <a href="%3$s" target="_blank" rel="noopener noreferrer">MonsterInsights</a>, and more!', 'wpforms-lite' ),
[254] Fix | Delete
[
[255] Fix | Delete
'a' => [
[256] Fix | Delete
'href' => [],
[257] Fix | Delete
'rel' => [],
[258] Fix | Delete
'target' => [],
[259] Fix | Delete
],
[260] Fix | Delete
]
[261] Fix | Delete
),
[262] Fix | Delete
'https://www.wpbeginner.com/?utm_source=wpformsplugin&utm_medium=pluginaboutpage&utm_campaign=aboutwpforms',
[263] Fix | Delete
'https://optinmonster.com/?utm_source=wpformsplugin&utm_medium=pluginaboutpage&utm_campaign=aboutwpforms',
[264] Fix | Delete
'https://www.monsterinsights.com/?utm_source=wpformsplugin&utm_medium=pluginaboutpage&utm_campaign=aboutwpforms'
[265] Fix | Delete
);
[266] Fix | Delete
?>
[267] Fix | Delete
</p>
[268] Fix | Delete
<p>
[269] Fix | Delete
<?php esc_html_e( 'Yup, we know a thing or two about building awesome products that customers love.', 'wpforms-lite' ); ?>
[270] Fix | Delete
</p>
[271] Fix | Delete
</div>
[272] Fix | Delete
[273] Fix | Delete
<div class="wpforms-admin-column-40 wpforms-admin-column-last">
[274] Fix | Delete
<figure>
[275] Fix | Delete
<img src="<?php echo esc_url( WPFORMS_PLUGIN_URL . 'assets/images/about/team.jpg' ); ?>" alt="<?php esc_attr_e( 'The WPForms Team photo', 'wpforms-lite' ); ?>">
[276] Fix | Delete
<figcaption>
[277] Fix | Delete
<?php esc_html_e( 'The WPForms Team', 'wpforms-lite' ); ?><br>
[278] Fix | Delete
</figcaption>
[279] Fix | Delete
</figure>
[280] Fix | Delete
</div>
[281] Fix | Delete
[282] Fix | Delete
</div>
[283] Fix | Delete
<?php
[284] Fix | Delete
}
[285] Fix | Delete
[286] Fix | Delete
/**
[287] Fix | Delete
* Display the Addons section of About tab.
[288] Fix | Delete
*
[289] Fix | Delete
* @since 1.5.8
[290] Fix | Delete
*/
[291] Fix | Delete
protected function output_about_addons() {
[292] Fix | Delete
[293] Fix | Delete
if ( ! wpforms_current_user_can() ) {
[294] Fix | Delete
return;
[295] Fix | Delete
}
[296] Fix | Delete
[297] Fix | Delete
$all_plugins = get_plugins();
[298] Fix | Delete
$am_plugins = $this->get_am_plugins();
[299] Fix | Delete
$can_install_plugins = wpforms_can_install( 'plugin' );
[300] Fix | Delete
$can_activate_plugins = wpforms_can_activate( 'plugin' );
[301] Fix | Delete
[302] Fix | Delete
?>
[303] Fix | Delete
<div id="wpforms-admin-addons">
[304] Fix | Delete
<div class="addons-container">
[305] Fix | Delete
<?php
[306] Fix | Delete
foreach ( $am_plugins as $plugin => $details ) :
[307] Fix | Delete
[308] Fix | Delete
$plugin_data = $this->get_plugin_data( $plugin, $details, $all_plugins );
[309] Fix | Delete
$plugin_ready_to_activate = $can_activate_plugins
[310] Fix | Delete
&& isset( $plugin_data['status_class'] )
[311] Fix | Delete
&& $plugin_data['status_class'] === 'status-installed';
[312] Fix | Delete
$plugin_not_activated = ! isset( $plugin_data['status_class'] )
[313] Fix | Delete
|| $plugin_data['status_class'] !== 'status-active';
[314] Fix | Delete
[315] Fix | Delete
?>
[316] Fix | Delete
<div class="addon-container">
[317] Fix | Delete
<div class="addon-item">
[318] Fix | Delete
<div class="details wpforms-clear">
[319] Fix | Delete
<img src="<?php echo esc_url( $plugin_data['details']['icon'] ); ?>" alt="<?php echo esc_attr( $plugin_data['details']['name'] ); ?>">
[320] Fix | Delete
<h5 class="addon-name">
[321] Fix | Delete
<?php echo esc_html( $plugin_data['details']['name'] ); ?>
[322] Fix | Delete
</h5>
[323] Fix | Delete
<p class="addon-desc">
[324] Fix | Delete
<?php echo wp_kses_post( $plugin_data['details']['desc'] ); ?>
[325] Fix | Delete
</p>
[326] Fix | Delete
</div>
[327] Fix | Delete
<div class="actions wpforms-clear">
[328] Fix | Delete
<div class="status">
[329] Fix | Delete
<strong>
[330] Fix | Delete
<?php
[331] Fix | Delete
printf( /* translators: %s - status label. */
[332] Fix | Delete
esc_html__( 'Status: %s', 'wpforms-lite' ),
[333] Fix | Delete
'<span class="status-label ' . esc_attr( $plugin_data['status_class'] ) . '">' . wp_kses_post( $plugin_data['status_text'] ) . '</span>'
[334] Fix | Delete
);
[335] Fix | Delete
?>
[336] Fix | Delete
</strong>
[337] Fix | Delete
</div>
[338] Fix | Delete
<div class="action-button">
[339] Fix | Delete
<?php if ( $can_install_plugins || $plugin_ready_to_activate || ! $details['wporg'] ) { ?>
[340] Fix | Delete
<button class="<?php echo esc_attr( $plugin_data['action_class'] ); ?>" data-plugin="<?php echo esc_attr( $plugin_data['plugin_src'] ); ?>" data-type="plugin">
[341] Fix | Delete
<?php echo wp_kses_post( $plugin_data['action_text'] ); ?>
[342] Fix | Delete
</button>
[343] Fix | Delete
<?php } elseif ( $plugin_not_activated ) { ?>
[344] Fix | Delete
<a href="<?php echo esc_url( $details['wporg'] ); ?>" target="_blank" rel="noopener noreferrer">
[345] Fix | Delete
<?php esc_html_e( 'WordPress.org', 'wpforms-lite' ); ?>
[346] Fix | Delete
<span aria-hidden="true" class="dashicons dashicons-external"></span>
[347] Fix | Delete
</a>
[348] Fix | Delete
<?php } ?>
[349] Fix | Delete
</div>
[350] Fix | Delete
</div>
[351] Fix | Delete
</div>
[352] Fix | Delete
</div>
[353] Fix | Delete
<?php endforeach; ?>
[354] Fix | Delete
</div>
[355] Fix | Delete
</div>
[356] Fix | Delete
<?php
[357] Fix | Delete
}
[358] Fix | Delete
[359] Fix | Delete
/**
[360] Fix | Delete
* Get AM plugin data to display in the Addons section of About tab.
[361] Fix | Delete
*
[362] Fix | Delete
* @since 1.5.8
[363] Fix | Delete
*
[364] Fix | Delete
* @param string $plugin Plugin slug.
[365] Fix | Delete
* @param array $details Plugin details.
[366] Fix | Delete
* @param array $all_plugins List of all plugins.
[367] Fix | Delete
*
[368] Fix | Delete
* @return array
[369] Fix | Delete
*/
[370] Fix | Delete
protected function get_plugin_data( $plugin, $details, $all_plugins ) {
[371] Fix | Delete
[372] Fix | Delete
$have_pro = ( ! empty( $details['pro'] ) && ! empty( $details['pro']['plug'] ) );
[373] Fix | Delete
$show_pro = false;
[374] Fix | Delete
[375] Fix | Delete
$plugin_data = [];
[376] Fix | Delete
[377] Fix | Delete
if ( $have_pro ) {
[378] Fix | Delete
if ( array_key_exists( $plugin, $all_plugins ) ) {
[379] Fix | Delete
if ( is_plugin_active( $plugin ) ) {
[380] Fix | Delete
$show_pro = true;
[381] Fix | Delete
}
[382] Fix | Delete
}
[383] Fix | Delete
if ( array_key_exists( $details['pro']['plug'], $all_plugins ) ) {
[384] Fix | Delete
$show_pro = true;
[385] Fix | Delete
}
[386] Fix | Delete
if ( $show_pro ) {
[387] Fix | Delete
$plugin = $details['pro']['plug'];
[388] Fix | Delete
$details = $details['pro'];
[389] Fix | Delete
}
[390] Fix | Delete
}
[391] Fix | Delete
[392] Fix | Delete
if ( array_key_exists( $plugin, $all_plugins ) ) {
[393] Fix | Delete
if ( is_plugin_active( $plugin ) ) {
[394] Fix | Delete
// Status text/status.
[395] Fix | Delete
$plugin_data['status_class'] = 'status-active';
[396] Fix | Delete
$plugin_data['status_text'] = esc_html__( 'Active', 'wpforms-lite' );
[397] Fix | Delete
// Button text/status.
[398] Fix | Delete
$plugin_data['action_class'] = $plugin_data['status_class'] . ' button button-secondary disabled';
[399] Fix | Delete
$plugin_data['action_text'] = esc_html__( 'Activated', 'wpforms-lite' );
[400] Fix | Delete
$plugin_data['plugin_src'] = esc_attr( $plugin );
[401] Fix | Delete
} else {
[402] Fix | Delete
// Status text/status.
[403] Fix | Delete
$plugin_data['status_class'] = 'status-installed';
[404] Fix | Delete
$plugin_data['status_text'] = esc_html__( 'Inactive', 'wpforms-lite' );
[405] Fix | Delete
// Button text/status.
[406] Fix | Delete
$plugin_data['action_class'] = $plugin_data['status_class'] . ' button button-secondary';
[407] Fix | Delete
$plugin_data['action_text'] = esc_html__( 'Activate', 'wpforms-lite' );
[408] Fix | Delete
$plugin_data['plugin_src'] = esc_attr( $plugin );
[409] Fix | Delete
}
[410] Fix | Delete
} else {
[411] Fix | Delete
// Doesn't exist, install.
[412] Fix | Delete
// Status text/status.
[413] Fix | Delete
$plugin_data['status_class'] = 'status-missing';
[414] Fix | Delete
[415] Fix | Delete
if ( isset( $details['act'] ) && 'go-to-url' === $details['act'] ) {
[416] Fix | Delete
$plugin_data['status_class'] = 'status-go-to-url';
[417] Fix | Delete
}
[418] Fix | Delete
$plugin_data['status_text'] = esc_html__( 'Not Installed', 'wpforms-lite' );
[419] Fix | Delete
// Button text/status.
[420] Fix | Delete
$plugin_data['action_class'] = $plugin_data['status_class'] . ' button button-primary';
[421] Fix | Delete
$plugin_data['action_text'] = esc_html__( 'Install Plugin', 'wpforms-lite' );
[422] Fix | Delete
$plugin_data['plugin_src'] = esc_url( $details['url'] );
[423] Fix | Delete
}
[424] Fix | Delete
[425] Fix | Delete
$plugin_data['details'] = $details;
[426] Fix | Delete
[427] Fix | Delete
return $plugin_data;
[428] Fix | Delete
}
[429] Fix | Delete
[430] Fix | Delete
/**
[431] Fix | Delete
* Display the Getting Started tab content.
[432] Fix | Delete
*
[433] Fix | Delete
* @since 1.5.0
[434] Fix | Delete
*/
[435] Fix | Delete
protected function output_getting_started() {
[436] Fix | Delete
[437] Fix | Delete
$license = $this->get_license_type();
[438] Fix | Delete
$utm_campaign = $license === 'lite' ? 'liteplugin' : 'plugin';
[439] Fix | Delete
[440] Fix | Delete
$links = [
[441] Fix | Delete
'add-new' => "https://wpforms.com/docs/creating-first-form/?utm_source=WordPress&utm_medium=wpforms-about-page&utm_campaign={$utm_campaign}&utm_content=How to Add a New Form#add-new",
[442] Fix | Delete
'customize-fields' => "https://wpforms.com/docs/creating-first-form/?utm_source=WordPress&utm_medium=wpforms-about-page&utm_campaign={$utm_campaign}&utm_content=How to Customize Form Fields#customize-fields",
[443] Fix | Delete
'display-form' => "https://wpforms.com/docs/creating-first-form/?utm_source=WordPress&utm_medium=wpforms-about-page&utm_campaign={$utm_campaign}&utm_content=How to Display Forms on Your Site#display-form",
[444] Fix | Delete
'right-form-field' => "https://wpforms.com/docs/how-to-choose-the-right-form-field-for-your-forms/?utm_source=WordPress&utm_medium=wpforms-about-page&utm_campaign={$utm_campaign}&utm_content=How to Choose the Right Form Field",
[445] Fix | Delete
'complete-guide' => "https://wpforms.com/docs/a-complete-guide-to-wpforms-settings/?utm_source=WordPress&utm_medium=wpforms-about-page&utm_campaign={$utm_campaign}&utm_content=A Complete Guide to WPForms Settings",
[446] Fix | Delete
'gdpr-compliant' => "https://wpforms.com/docs/how-to-create-gdpr-compliant-forms/?utm_source=WordPress&utm_medium=wpforms-about-page&utm_campaign={$utm_campaign}&utm_content=How to Create GDPR Complaint Forms",
[447] Fix | Delete
'install-activate-addons' => "https://wpforms.com/docs/install-activate-wpforms-addons/?utm_source=WordPress&utm_medium=wpforms-about-page&utm_campaign={$utm_campaign}&utm_content=How to Install and Activate WPForms Addons",
[448] Fix | Delete
];
[449] Fix | Delete
?>
[450] Fix | Delete
[451] Fix | Delete
<div class="wpforms-admin-about-section wpforms-admin-about-section-first-form" style="display:flex;">
[452] Fix | Delete
[453] Fix | Delete
<div class="wpforms-admin-about-section-first-form-text">
[454] Fix | Delete
[455] Fix | Delete
<h2>
[456] Fix | Delete
<?php esc_html_e( 'Creating Your First Form', 'wpforms-lite' ); ?>
[457] Fix | Delete
</h2>
[458] Fix | Delete
[459] Fix | Delete
<p>
[460] Fix | Delete
<?php esc_html_e( 'Want to get started creating your first form with WPForms? By following the step by step instructions in this walkthrough, you can easily publish your first form on your site.', 'wpforms-lite' ); ?>
[461] Fix | Delete
</p>
[462] Fix | Delete
[463] Fix | Delete
<p>
[464] Fix | Delete
<?php esc_html_e( 'To begin, you’ll need to be logged into the WordPress admin area. Once there, click on WPForms in the admin sidebar to go to the Forms Overview page.', 'wpforms-lite' ); ?>
[465] Fix | Delete
</p>
[466] Fix | Delete
[467] Fix | Delete
<p>
[468] Fix | Delete
<?php esc_html_e( 'In the Forms Overview page, the forms list will be empty because there are no forms yet. To create a new form, click on the Add New button, and this will launch the WPForms Form Builder.', 'wpforms-lite' ); ?>
[469] Fix | Delete
</p>
[470] Fix | Delete
[471] Fix | Delete
<ul class="list-plain">
[472] Fix | Delete
<li>
[473] Fix | Delete
<a href="<?php echo esc_url( $links['add-new'] ); ?>" target="_blank" rel="noopener noreferrer">
[474] Fix | Delete
<?php esc_html_e( 'How to Add a New Form', 'wpforms-lite' ); ?>
[475] Fix | Delete
</a>
[476] Fix | Delete
</li>
[477] Fix | Delete
<li>
[478] Fix | Delete
<a href="<?php echo esc_url( $links['customize-fields'] ); ?>" target="_blank" rel="noopener noreferrer">
[479] Fix | Delete
<?php esc_html_e( 'How to Customize Form Fields', 'wpforms-lite' ); ?>
[480] Fix | Delete
</a>
[481] Fix | Delete
</li>
[482] Fix | Delete
<li>
[483] Fix | Delete
<a href="<?php echo esc_url( $links['display-form'] ); ?>" target="_blank" rel="noopener noreferrer">
[484] Fix | Delete
<?php esc_html_e( 'How to Display Forms on Your Site', 'wpforms-lite' ); ?>
[485] Fix | Delete
</a>
[486] Fix | Delete
</li>
[487] Fix | Delete
</ul>
[488] Fix | Delete
[489] Fix | Delete
</div>
[490] Fix | Delete
[491] Fix | Delete
<div class="wpforms-admin-about-section-first-form-video">
[492] Fix | Delete
<iframe src="https://www.youtube-nocookie.com/embed/SQ9kV9SKz5k?rel=0" width="540" height="304" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
[493] Fix | Delete
</div>
[494] Fix | Delete
[495] Fix | Delete
</div>
[496] Fix | Delete
[497] Fix | Delete
<?php if ( ! in_array( $license, self::$licenses_top, true ) ) { ?>
[498] Fix | Delete
<div class="wpforms-admin-about-section wpforms-admin-about-section-hero">
[499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function