Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
85.71% covered (warning)
85.71%
12 / 14
75.00% covered (warning)
75.00%
3 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
Atomic_Additional_CSS_Manager
85.71% covered (warning)
85.71%
12 / 14
75.00% covered (warning)
75.00%
3 / 4
4.05
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 register_nudge
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
1 / 1
1
 get_nudge_url
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 get_plan
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2/**
3 * WPORG_Additional_CSS_Manager file
4 *
5 * Responsible with replacing the Core Additional CSS section with an upgrade nudge on Atomic.
6 *
7 * @package automattic/jetpack-masterbar
8 */
9
10namespace Automattic\Jetpack\Masterbar;
11
12/**
13 * Class Atomic_Additional_CSS_Manager
14 */
15class Atomic_Additional_CSS_Manager {
16
17    /**
18     * The site domain.
19     *
20     * @var string
21     */
22    private $domain;
23
24    /**
25     * Atomic_Additional_CSS_Manager constructor.
26     *
27     * @param string $domain the Site domain.
28     */
29    public function __construct( $domain ) {
30        $this->domain = $domain;
31    }
32
33    /**
34     * Replace the Additional CSS section from CustomizĀ”er with an upgrade nudge.
35     *
36     * @param \WP_Customize_Manager $wp_customize_manager Core customize manager.
37     */
38    public function register_nudge( \WP_Customize_Manager $wp_customize_manager ) {
39        $plan_name = $this->get_plan()->product_name_short;
40
41        $nudge_url = $this->get_nudge_url();
42        /* translators: %s is the plan name. */
43        $nudge_text = sprintf( __( 'Purchase the %s plan to<br> activate CSS customization', 'jetpack-masterbar' ), $plan_name );
44
45        $nudge = new CSS_Customizer_Nudge(
46            $nudge_url,
47            $nudge_text
48        );
49
50        $wp_customize_manager->remove_control( 'custom_css' );
51        $wp_customize_manager->remove_section( 'custom_css' );
52
53        $nudge->customize_register_nudge( $wp_customize_manager );
54    }
55
56    /**
57     * Get the nudge URL in WPCOM.
58     *
59     * @return string
60     */
61    private function get_nudge_url() {
62        return '/checkout/' . $this->domain . '/' . $this->get_plan()->path_slug;
63    }
64
65    /**
66     * Get the plan.
67     *
68     * @return mixed
69     */
70    protected function get_plan() {
71        $plan_slug = apply_filters( 'wpcom_customize_css_plan_slug', 'value_bundle' );
72
73        return \Automattic\Jetpack\Plans::get_plan( $plan_slug );
74    }
75}