PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.8.4
Independent Analytics – WordPress Analytics Plugin v2.8.4
2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / IAWP / AJAX / Copy_Report.php
independent-analytics / IAWP / AJAX Last commit date
AJAX.php 1 year ago AJAX_Manager.php 1 year ago Configure_Pruner.php 1 year ago Confirm_Cache_Cleared.php 1 year ago Copy_Report.php 2 years ago Create_Campaign.php 2 years ago Create_Report.php 2 years ago Delete_Campaign.php 2 years ago Delete_Data.php 2 years ago Delete_Report.php 2 years ago Export_Campaigns.php 2 years ago Export_Devices.php 2 years ago Export_Geo.php 2 years ago Export_Pages.php 2 years ago Export_Referrers.php 2 years ago Export_Reports.php 1 year ago Filter.php 1 year ago Import_Reports.php 2 years ago Migration_Status.php 2 years ago Preview_Email.php 2 years ago Real_Time_Data.php 2 years ago Rename_Report.php 2 years ago Reset_Analytics.php 2 years ago Save_Report.php 2 years ago Set_Favorite_Report.php 2 years ago Set_WooCommerce_Statuses_To_Track.php 1 year ago Sort_Reports.php 2 years ago Test_Email.php 2 years ago Update_Capabilities.php 1 year ago Update_User_Settings.php 2 years ago
Copy_Report.php
61 lines
1 <?php
2
3 namespace IAWP\AJAX;
4
5 use IAWP\Illuminate_Builder;
6 use IAWP\Query;
7 use IAWP\Report;
8 use IAWP\Report_Options_Parser;
9 /** @internal */
10 class Copy_Report extends \IAWP\AJAX\AJAX
11 {
12 /**
13 * @return array
14 */
15 protected function action_required_fields() : array
16 {
17 return ['name'];
18 }
19 /**
20 * @return string
21 */
22 protected function action_name() : string
23 {
24 return 'iawp_copy_report';
25 }
26 /**
27 * @return void
28 */
29 protected function action_callback() : void
30 {
31 $reports_table = Query::get_table_name(Query::REPORTS);
32 $existing_report_options = $this->get_existing_report_options();
33 if (\is_null($existing_report_options)) {
34 \wp_send_json_error();
35 }
36 $new_report_id = Illuminate_Builder::get_builder()->from($reports_table)->insertGetId($existing_report_options);
37 $report_options_parser = Report_Options_Parser::from_json($_POST['changes']);
38 if (\count($report_options_parser->get_options_for_updating()) > 0) {
39 Illuminate_Builder::get_builder()->from($reports_table)->where('report_id', '=', $new_report_id)->update($report_options_parser->get_options_for_updating());
40 }
41 $row = Illuminate_Builder::get_builder()->from($reports_table)->where('report_id', '=', $new_report_id)->first();
42 $report = new Report($row);
43 \wp_send_json_success(['url' => $report->url()]);
44 }
45 private function get_existing_report_options() : ?array
46 {
47 if (\strlen($this->get_field('id')) === 0) {
48 return ['name' => $this->get_field('name'), 'type' => $this->get_field('type')];
49 }
50 $reports_table = Query::get_table_name(Query::REPORTS);
51 $existing_report = Illuminate_Builder::get_builder()->from($reports_table)->where('report_id', '=', $this->get_field('id'))->first();
52 if (\is_null($existing_report)) {
53 return null;
54 }
55 $existing_report = (array) $existing_report;
56 unset($existing_report['report_id']);
57 $existing_report['name'] = $this->get_field('name');
58 return $existing_report;
59 }
60 }
61