PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / trunk
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress vtrunk
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 11 months 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 }