forked from moodle/moodle
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDL-69166 enrol_fee: An enrolment plugin that supports payments
- Loading branch information
Showing
8 changed files
with
725 additions
and
1 deletion.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
<?php | ||
// This file is part of Moodle - http://moodle.org/ | ||
// | ||
// Moodle is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
// | ||
// Moodle is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
/** | ||
* Capabilities for fee enrolment plugin. | ||
* | ||
* @package enrol_fee | ||
* @copyright 2019 Shamim Rezaie <[email protected]> | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
|
||
defined('MOODLE_INTERNAL') || die(); | ||
|
||
$capabilities = array( | ||
|
||
'enrol/fee:config' => array( | ||
'captype' => 'write', | ||
'contextlevel' => CONTEXT_COURSE, | ||
'archetypes' => array( | ||
'manager' => CAP_ALLOW, | ||
) | ||
), | ||
|
||
'enrol/fee:manage' => array( | ||
'captype' => 'write', | ||
'contextlevel' => CONTEXT_COURSE, | ||
'archetypes' => array( | ||
'manager' => CAP_ALLOW, | ||
'editingteacher' => CAP_ALLOW, | ||
) | ||
), | ||
|
||
'enrol/fee:unenrol' => array( | ||
'captype' => 'write', | ||
'contextlevel' => CONTEXT_COURSE, | ||
'archetypes' => array( | ||
'manager' => CAP_ALLOW, | ||
) | ||
), | ||
|
||
'enrol/fee:unenrolself' => array( | ||
'captype' => 'write', | ||
'contextlevel' => CONTEXT_COURSE, | ||
'archetypes' => array( | ||
) | ||
), | ||
|
||
); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
<?php | ||
// This file is part of Moodle - http://moodle.org/ | ||
// | ||
// Moodle is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
// | ||
// Moodle is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
/** | ||
* Strings for component 'enrol_fee', language 'en' | ||
* | ||
* @package enrol_fee | ||
* @copyright 2019 Shamim Rezaie <[email protected]> | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
|
||
$string['assignrole'] = 'Assign role'; | ||
$string['cost'] = 'Enrolment fee'; | ||
$string['costerror'] = 'The enrolment fee must be a number.'; | ||
$string['currency'] = 'Currency'; | ||
$string['defaultrole'] = 'Default role assignment'; | ||
$string['defaultrole_desc'] = 'Select the role to assign to users after making a payment.'; | ||
$string['enrolenddate'] = 'End date'; | ||
$string['enrolenddate_help'] = 'If enabled, users can be enrolled until this date only.'; | ||
$string['enrolenddaterror'] = 'The enrolment end date cannot be earlier than the start date.'; | ||
$string['enrolperiod'] = 'Enrolment duration'; | ||
$string['enrolperiod_desc'] = 'Default length of time that the enrolment is valid. If set to zero, the enrolment duration will be unlimited by default.'; | ||
$string['enrolperiod_help'] = 'Length of time that the enrolment is valid, starting with the moment the user is enrolled. If disabled, the enrolment duration will be unlimited.'; | ||
$string['enrolstartdate'] = 'Start date'; | ||
$string['enrolstartdate_help'] = 'If enabled, users can only be enrolled from this date onwards.'; | ||
$string['expiredaction'] = 'Enrolment expiry action'; | ||
$string['expiredaction_help'] = 'Select the action to be performed when a user\'s enrolment expires. Please note that some user data and settings are deleted when a user is unenrolled.'; | ||
$string['fee:config'] = 'Configure enrolment on payment enrol instances'; | ||
$string['fee:manage'] = 'Manage enrolled users'; | ||
$string['fee:unenrol'] = 'Unenrol users from course'; | ||
$string['fee:unenrolself'] = 'Unenrol self from course'; | ||
$string['nocost'] = 'There is no cost to enrol in this course!'; | ||
$string['pluginname'] = 'Enrolment on payment'; | ||
$string['pluginname_desc'] = 'The enrolment on payment enrolment method allows you to set up courses requiring a payment. If the fee for any course is set to zero, then students are not asked to pay for entry. There is a site-wide fee that you set here as a default for the whole site and then a course setting that you can set for each course individually. The course fee overrides the site fee.'; | ||
$string['sendpaymentbutton'] = 'Select payment type'; | ||
$string['status'] = 'Allow enrolment on payment enrolments'; | ||
$string['status_desc'] = 'Allow users to make a payment to enrol into a course by default.'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
<?php | ||
// This file is part of Moodle - http://moodle.org/ | ||
// | ||
// Moodle is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
// | ||
// Moodle is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
/** | ||
* Fee enrolment plugin. | ||
* | ||
* This plugin allows you to set up paid courses. | ||
* | ||
* @package enrol_fee | ||
* @copyright 2019 Shamim Rezaie <[email protected]> | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
<?php | ||
// This file is part of Moodle - http://moodle.org/ | ||
// | ||
// Moodle is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
// | ||
// Moodle is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
/** | ||
* Settings for the Fee enrolment plugin | ||
* | ||
* @package enrol_fee | ||
* @copyright 2019 Shamim Rezaie <[email protected]> | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
|
||
defined('MOODLE_INTERNAL') || die(); | ||
|
||
if ($ADMIN->fulltree) { | ||
|
||
$settings->add(new admin_setting_heading('enrol_fee_settings', '', get_string('pluginname_desc', 'enrol_fee'))); | ||
|
||
// Note: let's reuse the ext sync constants and strings here, internally it is very similar, | ||
// it describes what should happen when users are not supposed to be enrolled any more. | ||
$options = array( | ||
ENROL_EXT_REMOVED_KEEP => get_string('extremovedkeep', 'enrol'), | ||
ENROL_EXT_REMOVED_SUSPENDNOROLES => get_string('extremovedsuspendnoroles', 'enrol'), | ||
ENROL_EXT_REMOVED_UNENROL => get_string('extremovedunenrol', 'enrol'), | ||
); | ||
$settings->add(new admin_setting_configselect( | ||
'enrol_fee/expiredaction', | ||
get_string('expiredaction', 'enrol_fee'), | ||
get_string('expiredaction_help', 'enrol_fee'), | ||
ENROL_EXT_REMOVED_SUSPENDNOROLES, | ||
$options)); | ||
|
||
$settings->add(new admin_setting_heading('enrol_fee_defaults', | ||
get_string('enrolinstancedefaults', 'admin'), get_string('enrolinstancedefaults_desc', 'admin'))); | ||
|
||
$options = array(ENROL_INSTANCE_ENABLED => get_string('yes'), | ||
ENROL_INSTANCE_DISABLED => get_string('no')); | ||
$settings->add(new admin_setting_configselect('enrol_fee/status', | ||
get_string('status', 'enrol_fee'), get_string('status_desc', 'enrol_fee'), ENROL_INSTANCE_DISABLED, $options)); | ||
|
||
$settings->add(new admin_setting_configtext('enrol_fee/cost', get_string('cost', 'enrol_fee'), '', 0, PARAM_FLOAT, 4)); | ||
|
||
$currencies = enrol_get_plugin('fee')->get_possible_currencies(); | ||
$settings->add(new admin_setting_configselect('enrol_fee/currency', get_string('currency', 'enrol_fee'), '', '', $currencies)); | ||
|
||
if (!during_initial_install()) { | ||
$options = get_default_enrol_roles(context_system::instance()); | ||
$student = get_archetype_roles('student'); | ||
$student = reset($student); | ||
$settings->add(new admin_setting_configselect('enrol_fee/roleid', | ||
get_string('defaultrole', 'enrol_fee'), get_string('defaultrole_desc', 'enrol_fee'), $student->id, $options)); | ||
} | ||
|
||
$settings->add(new admin_setting_configduration('enrol_fee/enrolperiod', | ||
get_string('enrolperiod', 'enrol_fee'), get_string('enrolperiod_desc', 'enrol_fee'), 0)); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
<?php | ||
// This file is part of Moodle - http://moodle.org/ | ||
// | ||
// Moodle is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
// | ||
// Moodle is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
/** | ||
* Fee enrolment plugin version specification. | ||
* | ||
* @package enrol_fee | ||
* @copyright 2019 Shamim Rezaie <[email protected]> | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
|
||
defined('MOODLE_INTERNAL') || die(); | ||
|
||
$plugin->version = 2021052500; // The current plugin version (Date: YYYYMMDDXX). | ||
$plugin->requires = 2021052500; // Requires this Moodle version. | ||
$plugin->component = 'enrol_fee'; // Full name of the plugin (used for diagnostics). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters