PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 4.16.19
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v4.16.19
4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / Admin / SettingsPages / Membership / ExportPage / AbstractExport.php
wp-user-avatar / src / Admin / SettingsPages / Membership / ExportPage Last commit date
views 2 years ago AbstractExport.php 1 year ago CustomersExport.php 5 months ago OrdersExport.php 2 years ago PlansExport.php 2 years ago ProductSalesExport.php 2 years ago SalesEarningsExport.php 2 years ago SettingsPage.php 1 year ago SubscriptionsExport.php 2 years ago index.php 2 years ago
AbstractExport.php
95 lines
1 <?php
2
3 namespace ProfilePress\Core\Admin\SettingsPages\Membership\ExportPage;
4
5 use ProfilePressVendor\Carbon\CarbonImmutable;
6 use ProfilePressVendor\League\Csv\Writer;
7
8 abstract class AbstractExport
9 {
10 protected $form = [];
11
12 public function __construct($form)
13 {
14 $this->form = $form;
15 }
16
17 abstract protected function headers();
18
19 abstract protected function get_data($page = 1, $limit = 9999);
20
21 public function execute()
22 {
23 $upload_dir = wp_upload_dir();
24
25 $export_type = $this->camelCaseToKebabCase($this->class_basename(static::class)) . '-' . CarbonImmutable::now(wp_timezone())->toDateString();
26
27 $filetype = '.csv';
28 $filename = 'ppress-' . $export_type . $filetype;
29 $file = trailingslashit($upload_dir['basedir']) . $filename;
30
31 if (file_exists($file)) {
32 unlink($file);
33 }
34
35 $page = 1;
36 $limit = 9999;
37
38 $data = $this->get_data($page, $limit);
39
40 if (empty($data)) {
41 wp_die(esc_html__('No data found for export parameters', 'wp-user-avatar'));
42 }
43
44 $writer = Writer::createFromPath($file, 'w+');
45
46 if (apply_filters('ppress_data_export_writer_use_alternative', false)) {
47 $writer = Writer::createFromFileObject(new \SplTempFileObject());
48 }
49
50 $writer->insertOne($this->headers());
51 $writer->insertAll($data);
52
53 $loop = true;
54
55 $page++;
56
57 while ($loop === true) {
58
59 $response = $this->get_data($page, $limit);
60
61 if (is_array($response) && ! empty($response)) {
62
63 $writer->insertAll($response);
64
65 if (count($response) < $limit) $loop = false;
66
67 $page++;
68
69 } else {
70 $loop = false;
71 }
72 }
73
74 $writer->output($filename);
75
76 @unlink($file);
77
78 exit;
79 }
80
81 private function class_basename($class)
82 {
83 $class = is_object($class) ? get_class($class) : $class;
84
85 return basename(str_replace('\\', '/', $class));
86 }
87
88 private function camelCaseToKebabCase($input)
89 {
90 // Replace all occurrences of a capital letter followed by a lowercase letter with a hyphen and the lowercase letter.
91 $output = preg_replace('/([a-z])([A-Z])/', '$1-$2', $input);
92
93 return strtolower($output);
94 }
95 }