Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/wpforms-.../src/Frontend
File: Frontend.php
* If we are viewing a singular page, then we can check the content early
[1500] Fix | Delete
* to see if the shortcode was used. If not, we fall back and load the assets
[1501] Fix | Delete
* later on during the page (widgets, archives, etc.).
[1502] Fix | Delete
*
[1503] Fix | Delete
* @since 1.0.0
[1504] Fix | Delete
*/
[1505] Fix | Delete
public function assets_header() {
[1506] Fix | Delete
[1507] Fix | Delete
/**
[1508] Fix | Delete
* Allow loading assets in header on various pages.
[1509] Fix | Delete
*
[1510] Fix | Delete
* By default, assets are loaded only on singular pages if WPForms shortcode or editor block is present.
[1511] Fix | Delete
* However, if a form is added as a sidebar widget, in a template or somewhere else outside the Loop,
[1512] Fix | Delete
* we will discover that too late for assets to be included in the header.
[1513] Fix | Delete
* In this case, we will include all required assets in the footer instead.
[1514] Fix | Delete
* This may lead to a brief FOUC (Flash Of Unstyled Content).
[1515] Fix | Delete
*
[1516] Fix | Delete
* Returning `true` from this filter on a particular page that matches your criteria
[1517] Fix | Delete
* is useful if you need to load assets in header on archive pages or any other
[1518] Fix | Delete
* pages that you know have a form - as a sidebar widget, dynamically inserted
[1519] Fix | Delete
* on form preview page, on category pages, etc.
[1520] Fix | Delete
*
[1521] Fix | Delete
* @since 1.8.1
[1522] Fix | Delete
*
[1523] Fix | Delete
* @param bool $force_load Force loading assets in header, default `false`.
[1524] Fix | Delete
*/
[1525] Fix | Delete
$force_load = (bool) apply_filters( 'wpforms_frontend_assets_header_force_load', false );
[1526] Fix | Delete
[1527] Fix | Delete
if ( $force_load ) {
[1528] Fix | Delete
$this->assets_css();
[1529] Fix | Delete
[1530] Fix | Delete
return;
[1531] Fix | Delete
}
[1532] Fix | Delete
[1533] Fix | Delete
if ( ! is_singular() ) {
[1534] Fix | Delete
return;
[1535] Fix | Delete
}
[1536] Fix | Delete
[1537] Fix | Delete
global $post;
[1538] Fix | Delete
[1539] Fix | Delete
if (
[1540] Fix | Delete
has_shortcode( $post->post_content, 'wpforms' ) ||
[1541] Fix | Delete
( function_exists( 'has_block' ) && has_block( 'wpforms/form-selector' ) )
[1542] Fix | Delete
) {
[1543] Fix | Delete
$this->assets_css();
[1544] Fix | Delete
}
[1545] Fix | Delete
}
[1546] Fix | Delete
[1547] Fix | Delete
/**
[1548] Fix | Delete
* Load the CSS assets for frontend output.
[1549] Fix | Delete
*
[1550] Fix | Delete
* @since 1.0.0
[1551] Fix | Delete
*/
[1552] Fix | Delete
public function assets_css() {
[1553] Fix | Delete
[1554] Fix | Delete
/**
[1555] Fix | Delete
* Fires before enqueueing frontend CSS.
[1556] Fix | Delete
*
[1557] Fix | Delete
* @since 1.0.0
[1558] Fix | Delete
*
[1559] Fix | Delete
* @param array $forms Array of forms on the page.
[1560] Fix | Delete
*/
[1561] Fix | Delete
do_action( 'wpforms_frontend_css', $this->forms ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName
[1562] Fix | Delete
[1563] Fix | Delete
$min = wpforms_get_min_suffix();
[1564] Fix | Delete
$disable_css = (int) wpforms_setting( 'disable-css', '1' );
[1565] Fix | Delete
[1566] Fix | Delete
if ( $disable_css === 3 ) {
[1567] Fix | Delete
return;
[1568] Fix | Delete
}
[1569] Fix | Delete
[1570] Fix | Delete
$style_name = $disable_css === 1 ? 'full' : 'base';
[1571] Fix | Delete
[1572] Fix | Delete
wp_enqueue_style(
[1573] Fix | Delete
"wpforms-{$this->render_engine}-{$style_name}",
[1574] Fix | Delete
WPFORMS_PLUGIN_URL . "assets/css/frontend/{$this->render_engine}/wpforms-{$style_name}{$min}.css",
[1575] Fix | Delete
[],
[1576] Fix | Delete
WPFORMS_VERSION
[1577] Fix | Delete
);
[1578] Fix | Delete
}
[1579] Fix | Delete
[1580] Fix | Delete
/**
[1581] Fix | Delete
* Load the JS assets for frontend output.
[1582] Fix | Delete
*
[1583] Fix | Delete
* @since 1.0.0
[1584] Fix | Delete
*/
[1585] Fix | Delete
public function assets_js() {
[1586] Fix | Delete
[1587] Fix | Delete
if ( $this->amp_obj->is_amp() ) {
[1588] Fix | Delete
return;
[1589] Fix | Delete
}
[1590] Fix | Delete
[1591] Fix | Delete
/**
[1592] Fix | Delete
* Fire before frontend JS assets are loaded.
[1593] Fix | Delete
*
[1594] Fix | Delete
* @since 1.0.0
[1595] Fix | Delete
*
[1596] Fix | Delete
* @param array $forms Forms on the current page.
[1597] Fix | Delete
*/
[1598] Fix | Delete
do_action( 'wpforms_frontend_js', $this->forms );
[1599] Fix | Delete
[1600] Fix | Delete
$min = wpforms_get_min_suffix();
[1601] Fix | Delete
[1602] Fix | Delete
// Load jQuery validation library - https://jqueryvalidation.org/.
[1603] Fix | Delete
wp_enqueue_script(
[1604] Fix | Delete
'wpforms-validation',
[1605] Fix | Delete
WPFORMS_PLUGIN_URL . 'assets/lib/jquery.validate.min.js',
[1606] Fix | Delete
[ 'jquery' ],
[1607] Fix | Delete
'1.20.0',
[1608] Fix | Delete
true
[1609] Fix | Delete
);
[1610] Fix | Delete
[1611] Fix | Delete
// Load jQuery input mask library - https://github.com/RobinHerbots/jquery.inputmask.
[1612] Fix | Delete
if (
[1613] Fix | Delete
$this->assets_global() ||
[1614] Fix | Delete
wpforms_has_field_type( [ 'phone', 'address' ], $this->forms, true ) ||
[1615] Fix | Delete
wpforms_has_field_setting( 'input_mask', $this->forms, true )
[1616] Fix | Delete
) {
[1617] Fix | Delete
wp_enqueue_script(
[1618] Fix | Delete
'wpforms-maskedinput',
[1619] Fix | Delete
WPFORMS_PLUGIN_URL . 'assets/lib/jquery.inputmask.min.js',
[1620] Fix | Delete
[ 'jquery' ],
[1621] Fix | Delete
'5.0.7-beta.29',
[1622] Fix | Delete
true
[1623] Fix | Delete
);
[1624] Fix | Delete
}
[1625] Fix | Delete
[1626] Fix | Delete
// Load mailcheck <https://github.com/mailcheck/mailcheck> and punycode libraries.
[1627] Fix | Delete
if (
[1628] Fix | Delete
$this->assets_global() ||
[1629] Fix | Delete
wpforms_has_field_type( [ 'email' ], $this->forms, true )
[1630] Fix | Delete
) {
[1631] Fix | Delete
wp_enqueue_script(
[1632] Fix | Delete
'wpforms-mailcheck',
[1633] Fix | Delete
WPFORMS_PLUGIN_URL . 'assets/lib/mailcheck.min.js',
[1634] Fix | Delete
false,
[1635] Fix | Delete
'1.1.2',
[1636] Fix | Delete
true
[1637] Fix | Delete
);
[1638] Fix | Delete
[1639] Fix | Delete
wp_enqueue_script(
[1640] Fix | Delete
'wpforms-punycode',
[1641] Fix | Delete
WPFORMS_PLUGIN_URL . 'assets/lib/punycode.min.js',
[1642] Fix | Delete
[],
[1643] Fix | Delete
'1.0.0',
[1644] Fix | Delete
true
[1645] Fix | Delete
);
[1646] Fix | Delete
}
[1647] Fix | Delete
[1648] Fix | Delete
wp_enqueue_script(
[1649] Fix | Delete
'wpforms-generic-utils',
[1650] Fix | Delete
WPFORMS_PLUGIN_URL . "assets/js/share/utils{$min}.js",
[1651] Fix | Delete
[ 'jquery' ],
[1652] Fix | Delete
WPFORMS_VERSION,
[1653] Fix | Delete
true
[1654] Fix | Delete
);
[1655] Fix | Delete
[1656] Fix | Delete
// Load base JS.
[1657] Fix | Delete
wp_enqueue_script(
[1658] Fix | Delete
'wpforms',
[1659] Fix | Delete
WPFORMS_PLUGIN_URL . "assets/js/frontend/wpforms{$min}.js",
[1660] Fix | Delete
[ 'jquery' ],
[1661] Fix | Delete
WPFORMS_VERSION,
[1662] Fix | Delete
true
[1663] Fix | Delete
);
[1664] Fix | Delete
[1665] Fix | Delete
// Load JS additions needed in the Modern Markup mode.
[1666] Fix | Delete
if ( $this->render_engine === 'modern' ) {
[1667] Fix | Delete
wp_enqueue_script(
[1668] Fix | Delete
'wpforms-modern',
[1669] Fix | Delete
WPFORMS_PLUGIN_URL . "assets/js/frontend/wpforms-modern{$min}.js",
[1670] Fix | Delete
[ 'wpforms' ],
[1671] Fix | Delete
WPFORMS_VERSION,
[1672] Fix | Delete
true
[1673] Fix | Delete
);
[1674] Fix | Delete
}
[1675] Fix | Delete
}
[1676] Fix | Delete
[1677] Fix | Delete
/**
[1678] Fix | Delete
* Retrieve the string containing the CAPTCHA inline javascript.
[1679] Fix | Delete
*
[1680] Fix | Delete
* Deprecation note:
[1681] Fix | Delete
* The only reason we haven't removed this method at all is that it's protected.
[1682] Fix | Delete
* There is a non-zero probability that people have their own classes that extend Frontend class.
[1683] Fix | Delete
*
[1684] Fix | Delete
* @since 1.6.4
[1685] Fix | Delete
* @deprecated 1.8.2
[1686] Fix | Delete
*
[1687] Fix | Delete
* @param array $captcha_settings The CAPTCHA settings.
[1688] Fix | Delete
*
[1689] Fix | Delete
* @return string
[1690] Fix | Delete
* @noinspection PhpMissingParamTypeInspection
[1691] Fix | Delete
* @noinspection PhpMissingReturnTypeInspection
[1692] Fix | Delete
* @noinspection ReturnTypeCanBeDeclaredInspection
[1693] Fix | Delete
* @noinspection PhpUnusedParameterInspection
[1694] Fix | Delete
*/
[1695] Fix | Delete
protected function get_captcha_inline_script( $captcha_settings ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
[1696] Fix | Delete
[1697] Fix | Delete
_deprecated_function( __METHOD__, '1.8.2 of the WPForms plugin', '\WPForms\Frontend\Captcha::get_captcha_inline_script' );
[1698] Fix | Delete
[1699] Fix | Delete
return '';
[1700] Fix | Delete
}
[1701] Fix | Delete
[1702] Fix | Delete
/**
[1703] Fix | Delete
* Cloudflare Turnstile captcha requires defer attribute.
[1704] Fix | Delete
*
[1705] Fix | Delete
* @since 1.8.0
[1706] Fix | Delete
*
[1707] Fix | Delete
* @param string $tag HTML for the script tag.
[1708] Fix | Delete
* @param string $handle Handle of a script.
[1709] Fix | Delete
* @param string $src Src of a script.
[1710] Fix | Delete
*
[1711] Fix | Delete
* @return string
[1712] Fix | Delete
* @noinspection PhpMissingParamTypeInspection
[1713] Fix | Delete
* @noinspection PhpUnusedParameterInspection
[1714] Fix | Delete
*/
[1715] Fix | Delete
public function set_defer_attribute( $tag, $handle, $src ): string { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed
[1716] Fix | Delete
[1717] Fix | Delete
$captcha_settings = wpforms_get_captcha_settings();
[1718] Fix | Delete
[1719] Fix | Delete
if ( $captcha_settings['provider'] !== 'turnstile' ) {
[1720] Fix | Delete
return $tag;
[1721] Fix | Delete
}
[1722] Fix | Delete
[1723] Fix | Delete
if ( $handle !== 'wpforms-recaptcha' ) {
[1724] Fix | Delete
return $tag;
[1725] Fix | Delete
}
[1726] Fix | Delete
[1727] Fix | Delete
return str_replace( ' src', ' defer src', $tag );
[1728] Fix | Delete
}
[1729] Fix | Delete
[1730] Fix | Delete
/**
[1731] Fix | Delete
* Load the necessary assets for the confirmation message.
[1732] Fix | Delete
*
[1733] Fix | Delete
* @since 1.1.2
[1734] Fix | Delete
* @since 1.7.9 Added $form_data argument.
[1735] Fix | Delete
*
[1736] Fix | Delete
* @param array $form_data Form data and settings.
[1737] Fix | Delete
*/
[1738] Fix | Delete
public function assets_confirmation( $form_data = [] ) {
[1739] Fix | Delete
[1740] Fix | Delete
$form_data = (array) $form_data;
[1741] Fix | Delete
$min = wpforms_get_min_suffix();
[1742] Fix | Delete
[1743] Fix | Delete
// Base CSS only.
[1744] Fix | Delete
if ( (int) wpforms_setting( 'disable-css', '1' ) === 1 ) {
[1745] Fix | Delete
wp_enqueue_style(
[1746] Fix | Delete
'wpforms-full',
[1747] Fix | Delete
WPFORMS_PLUGIN_URL . "assets/css/frontend/{$this->render_engine}/wpforms-full{$min}.css",
[1748] Fix | Delete
[],
[1749] Fix | Delete
WPFORMS_VERSION
[1750] Fix | Delete
);
[1751] Fix | Delete
}
[1752] Fix | Delete
[1753] Fix | Delete
// Special confirmation JS.
[1754] Fix | Delete
if ( ! $this->amp_obj->is_amp() ) {
[1755] Fix | Delete
wp_enqueue_script(
[1756] Fix | Delete
'wpforms-confirmation',
[1757] Fix | Delete
WPFORMS_PLUGIN_URL . "assets/js/frontend/wpforms-confirmation{$min}.js",
[1758] Fix | Delete
[ 'jquery' ],
[1759] Fix | Delete
WPFORMS_VERSION,
[1760] Fix | Delete
true
[1761] Fix | Delete
);
[1762] Fix | Delete
}
[1763] Fix | Delete
[1764] Fix | Delete
/**
[1765] Fix | Delete
* Fires after enqueueing assets on confirmation page have been enqueued.
[1766] Fix | Delete
*
[1767] Fix | Delete
* @since 1.1.2
[1768] Fix | Delete
* @since 1.7.9 Added $form_data argument.
[1769] Fix | Delete
*
[1770] Fix | Delete
* @param array $form_data Form data and settings.
[1771] Fix | Delete
*/
[1772] Fix | Delete
do_action( 'wpforms_frontend_confirmation', $form_data );
[1773] Fix | Delete
}
[1774] Fix | Delete
[1775] Fix | Delete
/**
[1776] Fix | Delete
* Load the assets in footer if needed (archives, widgets, etc.).
[1777] Fix | Delete
*
[1778] Fix | Delete
* @since 1.0.0
[1779] Fix | Delete
*/
[1780] Fix | Delete
public function assets_footer() {
[1781] Fix | Delete
[1782] Fix | Delete
if ( empty( $this->forms ) && ! $this->assets_global() ) {
[1783] Fix | Delete
return;
[1784] Fix | Delete
}
[1785] Fix | Delete
[1786] Fix | Delete
$this->assets_css();
[1787] Fix | Delete
$this->assets_js();
[1788] Fix | Delete
[1789] Fix | Delete
/**
[1790] Fix | Delete
* Fires after enqueueing footer assets.
[1791] Fix | Delete
*
[1792] Fix | Delete
* @since 1.0.0
[1793] Fix | Delete
*
[1794] Fix | Delete
* @param array $forms Forms being shown.
[1795] Fix | Delete
*/
[1796] Fix | Delete
do_action( 'wpforms_wp_footer', $this->forms ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName
[1797] Fix | Delete
}
[1798] Fix | Delete
[1799] Fix | Delete
/**
[1800] Fix | Delete
* Get strings to localize.
[1801] Fix | Delete
*
[1802] Fix | Delete
* @since 1.6.0
[1803] Fix | Delete
*
[1804] Fix | Delete
* @return array Array of strings to localize.
[1805] Fix | Delete
*/
[1806] Fix | Delete
public function get_strings(): array {
[1807] Fix | Delete
[1808] Fix | Delete
// Define base strings.
[1809] Fix | Delete
$strings = [
[1810] Fix | Delete
'val_required' => wpforms_setting( 'validation-required', esc_html__( 'This field is required.', 'wpforms-lite' ) ),
[1811] Fix | Delete
'val_email' => wpforms_setting( 'validation-email', esc_html__( 'Please enter a valid email address.', 'wpforms-lite' ) ),
[1812] Fix | Delete
'val_email_suggestion' => wpforms_setting(
[1813] Fix | Delete
'validation-email-suggestion',
[1814] Fix | Delete
sprintf( /* translators: %s - suggested email address. */
[1815] Fix | Delete
esc_html__( 'Did you mean %s?', 'wpforms-lite' ),
[1816] Fix | Delete
'{suggestion}'
[1817] Fix | Delete
)
[1818] Fix | Delete
),
[1819] Fix | Delete
'val_email_suggestion_title' => esc_attr__( 'Click to accept this suggestion.', 'wpforms-lite' ),
[1820] Fix | Delete
'val_email_restricted' => wpforms_setting( 'validation-email-restricted', esc_html__( 'This email address is not allowed.', 'wpforms-lite' ) ),
[1821] Fix | Delete
'val_number' => wpforms_setting( 'validation-number', esc_html__( 'Please enter a valid number.', 'wpforms-lite' ) ),
[1822] Fix | Delete
'val_number_positive' => wpforms_setting( 'validation-number-positive', esc_html__( 'Please enter a valid positive number.', 'wpforms-lite' ) ),
[1823] Fix | Delete
'val_minimum_price' => wpforms_setting( 'validation-minimum-price', esc_html__( 'Amount entered is less than the required minimum.', 'wpforms-lite' ) ),
[1824] Fix | Delete
'val_confirm' => wpforms_setting( 'validation-confirm', esc_html__( 'Field values do not match.', 'wpforms-lite' ) ),
[1825] Fix | Delete
'val_checklimit' => wpforms_setting( 'validation-check-limit', esc_html__( 'You have exceeded the number of allowed selections: {#}.', 'wpforms-lite' ) ),
[1826] Fix | Delete
'val_limit_characters' => wpforms_setting(
[1827] Fix | Delete
'validation-character-limit',
[1828] Fix | Delete
sprintf( /* translators: %1$s - characters count, %2$s - characters limit. */
[1829] Fix | Delete
esc_html__( '%1$s of %2$s max characters.', 'wpforms-lite' ),
[1830] Fix | Delete
'{count}',
[1831] Fix | Delete
'{limit}'
[1832] Fix | Delete
)
[1833] Fix | Delete
),
[1834] Fix | Delete
'val_limit_words' => wpforms_setting(
[1835] Fix | Delete
'validation-word-limit',
[1836] Fix | Delete
sprintf( /* translators: %1$s - words count, %2$s - words limit. */
[1837] Fix | Delete
esc_html__( '%1$s of %2$s max words.', 'wpforms-lite' ),
[1838] Fix | Delete
'{count}',
[1839] Fix | Delete
'{limit}'
[1840] Fix | Delete
)
[1841] Fix | Delete
),
[1842] Fix | Delete
'val_recaptcha_fail_msg' => wpforms_setting( 'recaptcha-fail-msg', esc_html__( 'Google reCAPTCHA verification failed, please try again later.', 'wpforms-lite' ) ),
[1843] Fix | Delete
'val_turnstile_fail_msg' => wpforms_setting( 'turnstile-fail-msg', esc_html__( 'Cloudflare Turnstile verification failed, please try again later.', 'wpforms-lite' ) ),
[1844] Fix | Delete
'val_inputmask_incomplete' => wpforms_setting( 'validation-inputmask-incomplete', esc_html__( 'Please fill out the field in required format.', 'wpforms-lite' ) ),
[1845] Fix | Delete
'uuid_cookie' => false,
[1846] Fix | Delete
'locale' => wpforms_get_language_code(),
[1847] Fix | Delete
'wpforms_plugin_url' => WPFORMS_PLUGIN_URL,
[1848] Fix | Delete
'gdpr' => wpforms_setting( 'gdpr' ),
[1849] Fix | Delete
'ajaxurl' => admin_url( 'admin-ajax.php' ),
[1850] Fix | Delete
[1851] Fix | Delete
/**
[1852] Fix | Delete
* Filters mail check enabled flag.
[1853] Fix | Delete
*
[1854] Fix | Delete
* @since 1.5.4.2
[1855] Fix | Delete
*
[1856] Fix | Delete
* @param bool $flag Enabled flag.
[1857] Fix | Delete
*/
[1858] Fix | Delete
'mailcheck_enabled' => (bool) apply_filters( 'wpforms_mailcheck_enabled', true ), // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName
[1859] Fix | Delete
[1860] Fix | Delete
/**
[1861] Fix | Delete
* Filters mail check domains.
[1862] Fix | Delete
*
[1863] Fix | Delete
* @since 1.5.4.2
[1864] Fix | Delete
*
[1865] Fix | Delete
* @param array $domains Domains to check.
[1866] Fix | Delete
*/
[1867] Fix | Delete
'mailcheck_domains' => array_map( 'sanitize_text_field', (array) apply_filters( 'wpforms_mailcheck_domains', [] ) ), // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName
[1868] Fix | Delete
[1869] Fix | Delete
/**
[1870] Fix | Delete
* Filters toplevel domains for mail check.
[1871] Fix | Delete
*
[1872] Fix | Delete
* @since 1.5.4.2
[1873] Fix | Delete
*
[1874] Fix | Delete
* @param array $toplevel_domains Toplevel domains to check.
[1875] Fix | Delete
*/
[1876] Fix | Delete
'mailcheck_toplevel_domains' => array_map( 'sanitize_text_field', (array) apply_filters( 'wpforms_mailcheck_toplevel_domains', [ 'dev' ] ) ), // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName
[1877] Fix | Delete
'is_ssl' => is_ssl(),
[1878] Fix | Delete
];
[1879] Fix | Delete
[1880] Fix | Delete
// Include payment related strings if needed.
[1881] Fix | Delete
$strings = $this->get_payment_strings( $strings );
[1882] Fix | Delete
[1883] Fix | Delete
// Include CSS variables list.
[1884] Fix | Delete
$strings = $this->get_css_vars_strings( $strings );
[1885] Fix | Delete
[1886] Fix | Delete
/**
[1887] Fix | Delete
* Filters frontend strings.
[1888] Fix | Delete
*
[1889] Fix | Delete
* @since 1.3.7.3
[1890] Fix | Delete
*
[1891] Fix | Delete
* @param array $strings Frontend strings.
[1892] Fix | Delete
*/
[1893] Fix | Delete
$strings = (array) apply_filters( 'wpforms_frontend_strings', $strings );
[1894] Fix | Delete
[1895] Fix | Delete
foreach ( $strings as $key => $value ) {
[1896] Fix | Delete
[1897] Fix | Delete
if ( ! is_scalar( $value ) ) {
[1898] Fix | Delete
continue;
[1899] Fix | Delete
}
[1900] Fix | Delete
[1901] Fix | Delete
$strings[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
[1902] Fix | Delete
}
[1903] Fix | Delete
[1904] Fix | Delete
return $strings;
[1905] Fix | Delete
}
[1906] Fix | Delete
[1907] Fix | Delete
/**
[1908] Fix | Delete
* Get payment strings.
[1909] Fix | Delete
*
[1910] Fix | Delete
* @since 1.8.1
[1911] Fix | Delete
*
[1912] Fix | Delete
* @param array $strings Strings.
[1913] Fix | Delete
*
[1914] Fix | Delete
* @return array
[1915] Fix | Delete
*/
[1916] Fix | Delete
private function get_payment_strings( array $strings ): array {
[1917] Fix | Delete
[1918] Fix | Delete
if ( function_exists( 'wpforms_get_currencies' ) ) {
[1919] Fix | Delete
$currency = wpforms_get_currency();
[1920] Fix | Delete
$currencies = wpforms_get_currencies();
[1921] Fix | Delete
$strings['currency_code'] = $currency;
[1922] Fix | Delete
$strings['currency_thousands'] = $currencies[ $currency ]['thousands_separator'] ?? ',';
[1923] Fix | Delete
$strings['currency_decimals'] = wpforms_get_currency_decimals( $currencies[ $currency ] );
[1924] Fix | Delete
$strings['currency_decimal'] = $currencies[ $currency ]['decimal_separator'] ?? '.';
[1925] Fix | Delete
$strings['currency_symbol'] = $currencies[ $currency ]['symbol'] ?? '$';
[1926] Fix | Delete
$strings['currency_symbol_pos'] = $currencies[ $currency ]['symbol_pos'] ?? 'left';
[1927] Fix | Delete
}
[1928] Fix | Delete
[1929] Fix | Delete
$strings['val_requiredpayment'] = wpforms_setting( 'validation-requiredpayment', esc_html__( 'Payment is required.', 'wpforms-lite' ) );
[1930] Fix | Delete
$strings['val_creditcard'] = wpforms_setting( 'validation-creditcard', esc_html__( 'Please enter a valid credit card number.', 'wpforms-lite' ) );
[1931] Fix | Delete
[1932] Fix | Delete
return $strings;
[1933] Fix | Delete
}
[1934] Fix | Delete
[1935] Fix | Delete
/**
[1936] Fix | Delete
* Get CSS variables data.
[1937] Fix | Delete
*
[1938] Fix | Delete
* @since 1.8.1
[1939] Fix | Delete
*
[1940] Fix | Delete
* @param array $strings Strings.
[1941] Fix | Delete
*
[1942] Fix | Delete
* @return array
[1943] Fix | Delete
*/
[1944] Fix | Delete
private function get_css_vars_strings( array $strings ): array {
[1945] Fix | Delete
[1946] Fix | Delete
if ( wpforms_get_render_engine() !== 'modern' ) {
[1947] Fix | Delete
return $strings;
[1948] Fix | Delete
}
[1949] Fix | Delete
[1950] Fix | Delete
$css_vars_obj = wpforms()->get( 'css_vars' );
[1951] Fix | Delete
[1952] Fix | Delete
if ( empty( $css_vars_obj ) ) {
[1953] Fix | Delete
return $strings;
[1954] Fix | Delete
}
[1955] Fix | Delete
[1956] Fix | Delete
$strings['css_vars'] = array_keys( $css_vars_obj->get_vars( ':root' ) );
[1957] Fix | Delete
[1958] Fix | Delete
return $strings;
[1959] Fix | Delete
}
[1960] Fix | Delete
[1961] Fix | Delete
/**
[1962] Fix | Delete
* Hook at fires at a later priority in wp_footer.
[1963] Fix | Delete
*
[1964] Fix | Delete
* @since 1.0.5
[1965] Fix | Delete
* @since 1.7.0 Load wpforms_settings on the confirmation page for a non-ajax form.
[1966] Fix | Delete
*/
[1967] Fix | Delete
public function footer_end() {
[1968] Fix | Delete
[1969] Fix | Delete
if (
[1970] Fix | Delete
( empty( $this->forms ) && empty( $_POST['wpforms'] ) && ! $this->assets_global() ) || // phpcs:ignore WordPress.Security.NonceVerification.Missing
[1971] Fix | Delete
$this->amp_obj->is_amp()
[1972] Fix | Delete
) {
[1973] Fix | Delete
return;
[1974] Fix | Delete
}
[1975] Fix | Delete
[1976] Fix | Delete
$strings = $this->get_strings();
[1977] Fix | Delete
[1978] Fix | Delete
/*
[1979] Fix | Delete
* Below we do our own implementation of wp_localize_script in an effort
[1980] Fix | Delete
* to be better compatible with caching plugins which were causing
[1981] Fix | Delete
* conflicts.
[1982] Fix | Delete
*/
[1983] Fix | Delete
echo "<script type='text/javascript'>\n";
[1984] Fix | Delete
echo "/* <![CDATA[ */\n";
[1985] Fix | Delete
echo 'var wpforms_settings = ' . wp_json_encode( $strings ) . "\n";
[1986] Fix | Delete
echo "/* ]]> */\n";
[1987] Fix | Delete
echo "</script>\n";
[1988] Fix | Delete
[1989] Fix | Delete
/**
[1990] Fix | Delete
* Fires after the end of the footer.
[1991] Fix | Delete
*
[1992] Fix | Delete
* @since 1.0.6
[1993] Fix | Delete
*
[1994] Fix | Delete
* @param array $forms Forms being shown.
[1995] Fix | Delete
*/
[1996] Fix | Delete
do_action( 'wpforms_wp_footer_end', $this->forms ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName
[1997] Fix | Delete
}
[1998] Fix | Delete
[1999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function