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
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/advanced.../includes/admin
File: class-action-links.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* The class manages various admin action links, feedback submission and text overrides in footer.
[2] Fix | Delete
*
[3] Fix | Delete
* @package AdvancedAds
[4] Fix | Delete
* @author Advanced Ads <info@wpadvancedads.com>
[5] Fix | Delete
* @since 1.47.0
[6] Fix | Delete
*/
[7] Fix | Delete
[8] Fix | Delete
namespace AdvancedAds\Admin;
[9] Fix | Delete
[10] Fix | Delete
use WP_User;
[11] Fix | Delete
use Advanced_Ads_Plugin;
[12] Fix | Delete
use AdvancedAds\Utilities\Conditional;
[13] Fix | Delete
use AdvancedAds\Framework\Utilities\Params;
[14] Fix | Delete
use AdvancedAds\Framework\Interfaces\Integration_Interface;
[15] Fix | Delete
[16] Fix | Delete
defined( 'ABSPATH' ) || exit;
[17] Fix | Delete
[18] Fix | Delete
/**
[19] Fix | Delete
* Action Links.
[20] Fix | Delete
*/
[21] Fix | Delete
class Action_Links implements Integration_Interface {
[22] Fix | Delete
[23] Fix | Delete
/**
[24] Fix | Delete
* Hook into WordPress.
[25] Fix | Delete
*
[26] Fix | Delete
* @return void
[27] Fix | Delete
*/
[28] Fix | Delete
public function hooks(): void {
[29] Fix | Delete
add_filter( 'plugin_action_links_' . ADVADS_PLUGIN_BASENAME, [ $this, 'add_links' ] );
[30] Fix | Delete
add_filter( 'admin_footer', [ $this, 'add_deactivation_popup' ] );
[31] Fix | Delete
add_filter( 'admin_footer_text', [ $this, 'admin_footer_text' ], 100 );
[32] Fix | Delete
add_action( 'wp_ajax_advads_send_feedback', [ $this, 'send_feedback' ] );
[33] Fix | Delete
}
[34] Fix | Delete
[35] Fix | Delete
/**
[36] Fix | Delete
* Add links to the plugins list
[37] Fix | Delete
*
[38] Fix | Delete
* @param array $links array of links for the plugins, adapted when the current plugin is found.
[39] Fix | Delete
*
[40] Fix | Delete
* @return array
[41] Fix | Delete
*/
[42] Fix | Delete
public function add_links( $links ): array {
[43] Fix | Delete
// Early bail!!
[44] Fix | Delete
if ( ! is_array( $links ) ) {
[45] Fix | Delete
return $links;
[46] Fix | Delete
}
[47] Fix | Delete
[48] Fix | Delete
// Add support page link.
[49] Fix | Delete
$support_link = sprintf(
[50] Fix | Delete
'<a href="%1$s">%2$s</a>',
[51] Fix | Delete
esc_url( admin_url( 'admin.php?page=advanced-ads-settings#top#support' ) ),
[52] Fix | Delete
__( 'Support', 'advanced-ads' )
[53] Fix | Delete
);
[54] Fix | Delete
[55] Fix | Delete
// Add add-ons link.
[56] Fix | Delete
$extend_link = defined( 'AAP_VERSION' )
[57] Fix | Delete
? '<a href="https://wpadvancedads.com/add-ons/?utm_source=advanced-ads&utm_medium=link&utm_campaign=plugin-page-add-ons" target="_blank">' . __( 'Add-Ons', 'advanced-ads' ) . '</a>'
[58] Fix | Delete
: '<a href="https://wpadvancedads.com/add-ons/all-access/?utm_source=advanced-ads&utm_medium=link&utm_campaign=plugin-page-features" target="_blank" class="aa-get-pro">' . __( 'See Pro Features', 'advanced-ads' ) . '</a>';
[59] Fix | Delete
[60] Fix | Delete
array_unshift( $links, $support_link, $extend_link );
[61] Fix | Delete
[62] Fix | Delete
return $links;
[63] Fix | Delete
}
[64] Fix | Delete
[65] Fix | Delete
/**
[66] Fix | Delete
* Display deactivation logic on plugins page
[67] Fix | Delete
*
[68] Fix | Delete
* @since 1.7.14
[69] Fix | Delete
*
[70] Fix | Delete
* @return void
[71] Fix | Delete
*/
[72] Fix | Delete
public function add_deactivation_popup(): void {
[73] Fix | Delete
$screen = get_current_screen();
[74] Fix | Delete
if ( ! isset( $screen->id ) || ! in_array( $screen->id, [ 'plugins', 'plugins-network' ], true ) ) {
[75] Fix | Delete
return;
[76] Fix | Delete
}
[77] Fix | Delete
[78] Fix | Delete
$from = '';
[79] Fix | Delete
$email = '';
[80] Fix | Delete
$current_user = wp_get_current_user();
[81] Fix | Delete
if ( $current_user instanceof WP_User ) {
[82] Fix | Delete
$from = sprintf( '%1$s <%2$s>', $current_user->user_nicename, trim( $current_user->user_email ) );
[83] Fix | Delete
$email = $current_user->user_email;
[84] Fix | Delete
}
[85] Fix | Delete
[86] Fix | Delete
include ADVADS_ABSPATH . 'views/admin/feedback-disable.php';
[87] Fix | Delete
}
[88] Fix | Delete
[89] Fix | Delete
/**
[90] Fix | Delete
* Overrides WordPress text in Footer
[91] Fix | Delete
*
[92] Fix | Delete
* @param string $text The footer text.
[93] Fix | Delete
*
[94] Fix | Delete
* @return string
[95] Fix | Delete
*/
[96] Fix | Delete
public function admin_footer_text( $text ): string {
[97] Fix | Delete
if ( Conditional::is_screen_advanced_ads() ) {
[98] Fix | Delete
return sprintf(
[99] Fix | Delete
/* translators: %1$s is the URL to add a new review */
[100] Fix | Delete
__( 'Thank the developer with a &#9733;&#9733;&#9733;&#9733;&#9733; review on <a href="%1$s" target="_blank">wordpress.org</a>', 'advanced-ads' ),
[101] Fix | Delete
'https://wordpress.org/support/plugin/advanced-ads/reviews/#new-post'
[102] Fix | Delete
);
[103] Fix | Delete
}
[104] Fix | Delete
[105] Fix | Delete
return (string) $text;
[106] Fix | Delete
}
[107] Fix | Delete
[108] Fix | Delete
/**
[109] Fix | Delete
* Send feedback via email
[110] Fix | Delete
*
[111] Fix | Delete
* @since 1.7.14
[112] Fix | Delete
*/
[113] Fix | Delete
public function send_feedback() {
[114] Fix | Delete
$data = Params::post( 'formdata' );
[115] Fix | Delete
if ( ! $data ) {
[116] Fix | Delete
wp_die();
[117] Fix | Delete
}
[118] Fix | Delete
[119] Fix | Delete
wp_parse_str( wp_unslash( $data ), $form );
[120] Fix | Delete
[121] Fix | Delete
if ( ! wp_verify_nonce( $form['advanced_ads_disable_form_nonce'], 'advanced_ads_disable_form' ) ) {
[122] Fix | Delete
wp_die();
[123] Fix | Delete
}
[124] Fix | Delete
[125] Fix | Delete
$email = trim( $form['advanced_ads_disable_reply_email'] );
[126] Fix | Delete
if ( empty( $email ) || ! is_email( $email ) ) {
[127] Fix | Delete
die();
[128] Fix | Delete
}
[129] Fix | Delete
[130] Fix | Delete
$text = '';
[131] Fix | Delete
$headers = [];
[132] Fix | Delete
$options = Advanced_Ads_Plugin::get_instance()->internal_options();
[133] Fix | Delete
$installed = isset( $options['installed'] ) ? gmdate( 'd.m.Y', $options['installed'] ) : '–';
[134] Fix | Delete
$from = $form['advanced_ads_disable_from'] ?? '';
[135] Fix | Delete
$subject = ( $form['advanced_ads_disable_reason'] ?? '(no reason given)' ) . ' (Advanced Ads)';
[136] Fix | Delete
[137] Fix | Delete
if ( isset( $form['advanced_ads_disable_text'] ) ) {
[138] Fix | Delete
$text = implode( "\n\r", $form['advanced_ads_disable_text'] );
[139] Fix | Delete
}
[140] Fix | Delete
$text .= "\n\n" . home_url() . " ($installed)";
[141] Fix | Delete
[142] Fix | Delete
// The user clicked on the "don’t disable" button or if an address is given in the form then use that one.
[143] Fix | Delete
if (
[144] Fix | Delete
isset( $form['advanced_ads_disable_reason'] ) &&
[145] Fix | Delete
'get help' === $form['advanced_ads_disable_reason']
[146] Fix | Delete
) {
[147] Fix | Delete
$current_user = wp_get_current_user();
[148] Fix | Delete
$name = ( $current_user instanceof WP_User ) ? $current_user->user_nicename : '';
[149] Fix | Delete
$from = $name . ' <' . $email . '>';
[150] Fix | Delete
$is_german = ( preg_match( '/\.de$/', $from ) || 'de_' === substr( get_locale(), 0, 3 ) || 'de_' === substr( get_user_locale(), 0, 3 ) );
[151] Fix | Delete
[152] Fix | Delete
if ( '' !== trim( $form['advanced_ads_disable_text'][0] ?? '' ) ) {
[153] Fix | Delete
$text .= $is_german
[154] Fix | Delete
? "\n\n Hilfe ist auf dem Weg."
[155] Fix | Delete
: "\n\n Help is on its way.";
[156] Fix | Delete
} else {
[157] Fix | Delete
$text .= $is_german
[158] Fix | Delete
? "\n\n Vielen Dank für das Feedback."
[159] Fix | Delete
: "\n\n Thank you for your feedback.";
[160] Fix | Delete
}
[161] Fix | Delete
}
[162] Fix | Delete
[163] Fix | Delete
if ( $from ) {
[164] Fix | Delete
$headers[] = "From: $from";
[165] Fix | Delete
$headers[] = "Reply-To: $from";
[166] Fix | Delete
}
[167] Fix | Delete
[168] Fix | Delete
wp_mail( 'improve@wpadvancedads.com', $subject, $text, $headers );
[169] Fix | Delete
die();
[170] Fix | Delete
}
[171] Fix | Delete
}
[172] Fix | Delete
[173] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function