PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.4.8
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.4.8
4.4.8 4.4.7 4.4.6 4.4.5 4.4.4 4.4.3 4.4.2 4.4.1 4.4.0 4.3.9.1 4.3.9 4.3.8 4.3.7 4.1.6.9 4.1.6.9.1 4.1.6.9.2 4.1.6.9.3 4.1.6.9.4 4.1.7 4.1.7.1 4.1.7.2 4.1.7.3 4.1.7.3.1 4.1.7.3.2 4.2.0 All 139 releases
← All changes | inc/admin/settings/class-lp-settings-payments.php +47 -10 4.2.04.4.8 View file →
@@ -6,8 +6,11 @@
6 6 * @package LearnPress/Admin/Classes
7 7 * @version 4.0.0
8 8 */
9 9
10 +use LearnPress\Helpers\Config;
11 +use LearnPress\TemplateHooks\Admin\AdminSettingsPage;
12 +
10 13 defined( 'ABSPATH' ) || exit;
11 14
12 15 /**
13 16 * Class LP_Settings_Payments
@@ -12,9 +15,8 @@
12 15 /**
13 16 * Class LP_Settings_Payments
14 17 *
15 18 * Manage all payments are registered and settings to control order process.
16 - *
17 19 */
18 20 class LP_Settings_Payments extends LP_Abstract_Settings_Page {
19 21 /**
20 22 * Constructor
@@ -45,13 +47,13 @@
45 47 * @return mixed
46 48 */
47 49 public function get_sections() {
48 50 static $sections;
49 -
50 - if ( ! $sections ) {
51 + if ( is_null( $sections ) ) {
51 52 $gateways = LP_Gateways::instance()->get_gateways();
52 53 $sections = array(
53 54 'general' => esc_html__( 'General', 'learnpress' ),
55 + 'refund' => esc_html__( 'Refund', 'learnpress' ),
54 56 );
55 57
56 58 if ( $gateways ) {
57 59 foreach ( $gateways as $id => $gateway ) {
@@ -129,18 +131,43 @@
129 131
130 132 return apply_filters( 'learn-press/payment-settings', array_merge( $guest, $enpoints, $payment ) );
131 133 }
132 134
133 - public function admin_page_settings( $section = null, $tab = null ) {
134 - $sections = array();
135 - $items = LP_Admin_Menu::instance()->get_menu_items();
135 + /**
136 + * Settings fields of refund section.
137 + *
138 + * @return array
139 + */
140 + public function get_settings_refund() {
141 + return Config::instance()->get( 'refund', 'settings/payments' );
142 + }
136 143
137 - if ( ! empty( $items['settings'] ) ) {
138 - $tab = $items['settings']->get_active_tab();
139 - $section = $items['settings']->get_active_section();
140 - $sections = $items['settings']->get_sections();
144 + /**
145 + * Keep refund option names compatible with the former general settings fields.
146 + *
147 + * @param string $name Field name.
148 + *
149 + * @return mixed
150 + */
151 + public function get_admin_field_name( $name ) {
152 + $tab = AdminSettingsPage::instance()->get_active_tab();
153 + $section = AdminSettingsPage::instance()->get_active_section();
154 +
155 + if ( 'payments' === $tab && 'refund' === $section ) {
156 + if ( empty( $name ) ) {
157 + $name = md5( microtime( true ) );
158 + }
159 +
160 + return apply_filters( 'learn_press_settings_field_name_' . $name, "learn_press_{$name}" );
141 161 }
142 162
163 + return parent::get_admin_field_name( $name );
164 + }
165 +
166 + public function admin_page_settings( $section = null, $tab = null ) {
167 + $tab = AdminSettingsPage::instance()->get_active_tab();
168 + $section = AdminSettingsPage::instance()->get_active_section();
169 + $sections = AdminSettingsPage::instance()->get_sections();
143 170 $section_data = ! empty( $sections[ $section ] ) ? $sections[ $section ] : false;
144 171
145 172 if ( $section_data instanceof LP_Abstract_Settings ) {
146 173 $section_data->admin_option_settings();
@@ -157,8 +184,18 @@
157 184 * @param string $section
158 185 * @param string $tab
159 186 */
160 187 public function admin_options_general( $section, $tab ) {
188 + parent::admin_page_settings( $section, $tab );
189 + }
190 +
191 + /**
192 + * Output admin option of refund page.
193 + *
194 + * @param string $section
195 + * @param string $tab
196 + */
197 + public function admin_options_refund( $section, $tab ) {
161 198 parent::admin_page_settings( $section, $tab );
162 199 }
163 200 }
164 201