Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- Plugin Name: Gravity Forms PayPal Add-On - User Update
- Plugin URI: http://pronamic.eu/wp-plugins/gravityformspaypal-userupdate
- Description: Makes it easy to update an user role to an value from an Gravity Forms field.
- Version: 0.1
- Author: pronamic
- Author URI: http://pronamic.eu/
- */
- class GFPayPalUserUpdate {
- /**
- * Text domain of this plugin
- *
- * @var string
- */
- const TEXT_DOMAIN = 'gravityformspaypal-userupdate';
- //////////////////////////////////////////////////
- /**
- * Bootstrap
- */
- public static function bootstrap() {
- add_action('init', array(__CLASS__, 'initialize'));
- add_action('admin_init', array(__CLASS__, 'adminInitialize'));
- }
- //////////////////////////////////////////////////
- /**
- * Initialize
- */
- public static function initialize() {
- add_action('gform_paypal_fulfillment', array(__CLASS__, 'updateUserRole'), 10, 2);
- }
- /**
- * Admin initialize
- */
- public static function adminInitialize() {
- add_action('gform_paypal_add_option_group', array(__CLASS__, 'addOptionGroup'), 10, 2);
- add_filter('gform_paypal_save_config', array(__CLASS__, 'saveConfig'));
- }
- //////////////////////////////////////////////////
- /**
- * Update user role
- *
- * @param array $entry
- * @param array $config
- */
- public static function updateUserRole($entry, $config) {
- // Gravity Forms User Registration Add-On
- if(class_exists('GFUserData')) {
- $user = GFUserData::get_user_by_entry_id($entry['id']);
- }
- if($user == false) {
- $user = new WP_User($entry['created_by']);
- }
- $paypalConfig = GFPayPal::get_config($entry['form_id']);
- $userRoleFieldId = $paypalConfig['meta']['user_role_field_id'];
- if($user && !empty($userRoleFieldId) && isset($entry[$userRoleFieldId])) {
- $value = $entry[$userRoleFieldId];
- $value = GFCommon::get_selection_value($value);
- $user->set_role($value);
- }
- }
- /**
- * Save config
- *
- * @param array $config
- */
- public static function saveConfig($config) {
- $config['meta']['user_role_field_id'] = rgpost('gf_paypal_user_role_field_id');
- return $config;
- }
- //////////////////////////////////////////////////
- /**
- * Add option group
- *
- * @param array $config
- * @param array $form
- */
- public static function addOptionGroup($config, $form) {
- $userRoleFieldId = $config['meta']['user_role_field_id'];
- ?>
- <div class="margin_vertical_10" style="<?php echo $display_registration_options; ?>">
- <label for="gf_paypal_user_role_field_id" class="left_header"><?php _e('Update User Role', self::TEXT_DOMAIN); ?></label>
- <select id="gf_paypal_user_role_field_id" name="gf_paypal_user_role_field_id">
- </select>
- </div>
- <script type="text/javascript">
- jQuery(document).ready(function($) {
- function setPayPalUserUpdateField(selectedField) {
- var fields = "<option></option>" + GetSelectableFields(selectedField, 20);
- $("#gf_paypal_user_role_field_id").html(fields);
- }
- setPayPalUserUpdateField("<?php echo $userRoleFieldId; ?>");
- $(document).bind("paypalFormSelected", function(form) {
- setPayPalUserUpdateField("");
- });
- });
- </script>
- <?php
- }
- }
- GFPayPalUserUpdate::bootstrap();
Add Comment
Please, Sign In to add comment