PluginProbe ʕ •ᴥ•ʔ
Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager / trunk
Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager vtrunk
4.1.39 4.1.38 trunk 1.2 1.2.1 1.2.2 1.2.3 1.3 1.3.1 1.3.2 1.3.3 1.4 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.10 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.2 1.8.3 1.9.0 1.9.1 1.9.2 1.9.3 2.0.0 2.0.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.1.0 2.1.1 2.1.4 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.1 2.3.2 2.3.3 2.3.4 2.4.0 2.4.1 2.4.10 2.4.11 2.4.12 2.4.13 2.4.14 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.6.0 2.7.0 2.7.1 2.8.0 2.9.0 2.9.1 2.9.2 3.0.0 3.0.1 3.0.10 3.0.11 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.3.0 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.10 3.5.11 3.5.12 3.5.13 3.5.14 3.5.15 3.5.16 3.5.17 3.5.18 3.5.19 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 3.5.8 3.5.9 3.6.0 4.0.0 4.1.0 4.1.1 4.1.10 4.1.11 4.1.12 4.1.13 4.1.14 4.1.15 4.1.16 4.1.17 4.1.18 4.1.19 4.1.2 4.1.20 4.1.21 4.1.22 4.1.23 4.1.24 4.1.25 4.1.26 4.1.27 4.1.28 4.1.29 4.1.3 4.1.30 4.1.31 4.1.32 4.1.34 4.1.35 4.1.36 4.1.37 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9
flexible-checkout-fields / src / Settings / Menu.php
flexible-checkout-fields / src / Settings Last commit date
Form 1 week ago Migrations 1 week ago Option 1 week ago Route 1 week ago Tab 1 week ago Forms.php 1 week ago Menu.php 1 week ago MigrationsManager.php 1 week ago Page.php 1 week ago Routes.php 1 week ago Tabs.php 1 week ago
Menu.php
104 lines
1 <?php
2
3 namespace WPDesk\FCF\Free\Settings;
4
5 /**
6 * Supports items for menu plugin settings page.
7 */
8 class Menu {
9
10 const OPTION_NAME_ENABLED = 'inspire_checkout_fields_%s';
11 const MENU_TAB_SETTINGS = 'settings';
12 const MENU_TAB_SECTIONS = 'sections';
13 const MENU_TAB_MARKETING = 'marketing';
14
15 /**
16 * List of default checkout sections.
17 *
18 * @var array
19 */
20 private static $default_field_sections = [
21 'billing',
22 'shipping',
23 'order',
24 ];
25
26 /**
27 * Returns list of items for menu with tabs.
28 *
29 * @return array Menu items.
30 */
31 public function get_menu_tabs(): array {
32 $current_tab = $_GET['tab'] ?? self::MENU_TAB_SECTIONS; // phpcs:ignore
33 $page_tabs = [
34 self::MENU_TAB_MARKETING => __( 'Start Here!', 'flexible-checkout-fields' ),
35 self::MENU_TAB_SETTINGS => __( 'Settings', 'flexible-checkout-fields' ),
36 self::MENU_TAB_SECTIONS => __( 'Checkout Sections', 'flexible-checkout-fields' ),
37 ];
38
39 $values = [];
40 foreach ( $page_tabs as $tab_id => $tab_name ) {
41 $values[] = [
42 'id' => $tab_id,
43 'label' => $tab_name,
44 'url' => admin_url(
45 sprintf(
46 'admin.php?page=%s&tab=%s',
47 Page::SETTINGS_PAGE,
48 $tab_id
49 )
50 ),
51 'is_active' => ( $tab_id === $current_tab ),
52 ];
53 }
54 return $values;
55 }
56
57 /**
58 * Returns list of items for menu with sections.
59 *
60 * @return array Menu items.
61 */
62 public function get_menu_sections(): array {
63 $current_tab = $_GET['tab'] ?? self::MENU_TAB_SECTIONS; // phpcs:ignore
64 if ( $current_tab !== self::MENU_TAB_SECTIONS ) {
65 return [];
66 }
67
68 $current_section = $_GET['section'] ?? 'billing'; // phpcs:ignore
69 $page_sections = [
70 'billing' => __( 'Billing', 'flexible-checkout-fields' ),
71 'shipping' => __( 'Shipping', 'flexible-checkout-fields' ),
72 'order' => __( 'Order', 'flexible-checkout-fields' ),
73 ];
74
75 $sections = apply_filters( 'flexible_checkout_fields_all_sections', [] );
76 foreach ( $sections as $section ) {
77 $page_sections[ $section['section'] ] = $section['tab_title'];
78 }
79
80 $values = [];
81 foreach ( $page_sections as $section_id => $section_name ) {
82 if ( ! in_array( $section_id, self::$default_field_sections, true )
83 && ( get_option( sprintf( self::OPTION_NAME_ENABLED, $section_id ) ) !== '1' ) ) {
84 continue;
85 }
86
87 $values[] = [
88 'id' => $section_id,
89 'label' => $section_name,
90 'url' => admin_url(
91 sprintf(
92 'admin.php?page=%s&tab=sections&section=%s',
93 Page::SETTINGS_PAGE,
94 $section_id
95 )
96 ),
97 'is_active' => ( $section_id === $current_section ),
98 'has_section_form' => ( ! in_array( $section_id, self::$default_field_sections, true ) ),
99 ];
100 }
101 return $values;
102 }
103 }
104