indexing-error-presenter.php
4.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php
namespace Yoast\WP\SEO\Presenters\Admin;
use WPSEO_Addon_Manager;
use Yoast\WP\SEO\Helpers\Product_Helper;
use Yoast\WP\SEO\Helpers\Short_Link_Helper;
use Yoast\WP\SEO\Presenters\Abstract_Presenter;
/**
* An error that should be shown when indexation has failed.
*/
class Indexing_Error_Presenter extends Abstract_Presenter {
/**
* The short link helper.
*
* @var Short_Link_Helper
*/
protected $short_link_helper;
/**
* The product helper
*
* @var Product_Helper
*/
protected $product_helper;
/**
* The addon manager.
*
* @var WPSEO_Addon_Manager
*/
protected $addon_manager;
/**
* Indexing_Error_Presenter constructor.
*
* @param Short_Link_Helper $short_link_helper Represents the short link helper.
* @param Product_Helper $product_helper The product helper.
* @param WPSEO_Addon_Manager $addon_manager The addon manager.
*/
public function __construct(
Short_Link_Helper $short_link_helper,
Product_Helper $product_helper,
WPSEO_Addon_Manager $addon_manager
) {
$this->short_link_helper = $short_link_helper;
$this->product_helper = $product_helper;
$this->addon_manager = $addon_manager;
}
/**
* Generates the first paragraph of the error message to show when indexing failed.
*
* The contents of the paragraph varies based on whether WordPress SEO Premium has a valid, activated subscription or not.
*
* @param bool $is_premium Whether WordPress SEO Premium is currently active.
* @param bool $has_valid_premium_subscription Whether WordPress SEO Premium currently has a valid subscription.
*
* @return string
*/
protected function generate_first_paragraph( $is_premium, $has_valid_premium_subscription ) {
$message = \__(
'Oops, something has gone wrong and we couldn\'t complete the optimization of your SEO data. Please click the button again to re-start the process. ',
'wordpress-seo'
);
if ( $is_premium ) {
if ( $has_valid_premium_subscription ) {
$message .= \__( 'If the problem persists, please contact support.', 'wordpress-seo' );
}
else {
$message = \sprintf(
/* translators: %1$s expands to an opening anchor tag for a link leading to the Premium installation page, %2$s expands to a closing anchor tag. */
\__(
'Oops, something has gone wrong and we couldn\'t complete the optimization of your SEO data. Please make sure to activate your subscription in MyYoast by completing %1$sthese steps%2$s.',
'wordpress-seo'
),
'<a href="' . \esc_url( $this->short_link_helper->get( 'https://yoa.st/3wv' ) ) . '">',
'</a>'
);
}
}
return $message;
}
/**
* Generates the second paragraph of the error message to show when indexing failed.
*
* The error message varies based on whether WordPress SEO Premium has a valid, activated subscription or not.
*
* @param bool $is_premium Whether WordPress SEO Premium is currently active.
* @param bool $has_valid_premium_subscription Whether WordPress SEO Premium currently has a valid subscription.
*
* @return string The second paragraph of the error message.
*/
protected function generate_second_paragraph( $is_premium, $has_valid_premium_subscription ) {
return \sprintf(
/* translators: %1$s expands to an opening anchor tag for a link leading to the Premium installation page, %2$s expands to a closing anchor tag. */
\__(
'Below are the technical details for the error. See %1$sthis page%2$s for a more detailed explanation.',
'wordpress-seo'
),
'<a href="' . \esc_url( $this->short_link_helper->get( 'https://yoa.st/4f3' ) ) . '">',
'</a>'
);
}
/**
* Presents the error message to show if SEO optimization failed.
*
* The error message varies based on whether WordPress SEO Premium has a valid, activated subscription or not.
*
* @return string The error message to show.
*/
public function present() {
$is_premium = $this->product_helper->is_premium();
$has_valid_premium_subscription = $this->addon_manager->has_valid_subscription( WPSEO_Addon_Manager::PREMIUM_SLUG );
$output = '<p>' . $this->generate_first_paragraph( $is_premium, $has_valid_premium_subscription ) . '</p>';
$output .= '<p>' . $this->generate_second_paragraph( $is_premium, $has_valid_premium_subscription ) . '</p>';
return $output;
}
}