PluginProbe
Elementor Website Builder – more than just a page builder / 3.0.2
Elementor Website Builder – more than just a page builder v3.0.2
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
elementor / modules / usage / usage-reporter.php

usage-reporter.php in Elementor Website Builder – more than just a page builder 3.0.2, at modules/usage/usage-reporter.php

95 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor\Modules\Usage;
3
4 use Elementor\Modules\System_Info\Reporters\Base;
5
6 if ( ! defined( 'ABSPATH' ) ) {
7 exit; // Exit if accessed directly.
8 }
9
10 /**
11 * Elementor usage report.
12 *
13 * Elementor system report handler class responsible for generating a report for
14 * the user.
15 */
16 class Usage_Reporter extends Base {
17
18 const RECALC_ACTION = 'elementor_usage_recalc';
19
20 public function get_title() {
21 $title = 'Elements Usage';
22
23 if ( 'html' === $this->_properties['format'] && empty( $_GET[ self::RECALC_ACTION ] ) ) { // phpcs:ignore -- nonce validation is not require here.
24 $nonce = wp_create_nonce( self::RECALC_ACTION );
25 $url = add_query_arg( [
26 self::RECALC_ACTION => 1,
27 '_wpnonce' => $nonce,
28 ] );
29
30 $title .= '<a id="elementor-usage-recalc" href="' . esc_url( $url ) . '#elementor-usage-recalc" class="box-title-tool">Recalculate</a>';
31 }
32
33 return $title;
34 }
35
36 public function get_fields() {
37 return [
38 'usage' => '',
39 ];
40 }
41
42 public function get_usage() {
43 /** @var Module $module */
44 $module = Module::instance();
45
46 if ( ! empty( $_GET[ self::RECALC_ACTION ] ) ) {
47 if ( empty( $_GET['_wpnonce'] ) || ! wp_verify_nonce( $_GET['_wpnonce'], self::RECALC_ACTION ) ) {
48 wp_die( 'Invalid Nonce', 'Invalid Nonce', [
49 'back_link' => true,
50 ] );
51 }
52
53 $module->recalc_usage();
54
55 wp_safe_redirect( remove_query_arg( self::RECALC_ACTION ) );
56
57 die;
58 }
59
60 $usage = '';
61
62 foreach ( $module->get_formatted_usage() as $doc_type => $data ) {
63 $usage .= '<tr><td>' . $data['title'] . ' ( ' . $data['count'] . ' )</td><td>';
64
65 foreach ( $data['elements'] as $element => $count ) {
66 $usage .= $element . ': ' . $count . PHP_EOL;
67 }
68
69 $usage .= '</td></tr>';
70 }
71
72 return [
73 'value' => $usage,
74 ];
75 }
76
77 public function get_raw_usage() {
78 /** @var Module $module */
79 $module = Module::instance();
80 $usage = PHP_EOL;
81
82 foreach ( $module->get_formatted_usage( 'raw' ) as $doc_type => $data ) {
83 $usage .= "\t{$data['title']} : " . $data['count'] . PHP_EOL;
84
85 foreach ( $data['elements'] as $element => $count ) {
86 $usage .= "\t\t{$element} : {$count}" . PHP_EOL;
87 }
88 }
89
90 return [
91 'value' => $usage,
92 ];
93 }
94 }
95