Server IP : 192.158.238.246 / Your IP : 18.218.108.184 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/7779/cwd/plugins/give/src/Subscriptions/Migrations/ |
Upload File : |
<?php namespace Give\Subscriptions\Migrations; use Give\Framework\Database\DB; use Give\Framework\Database\Exceptions\DatabaseQueryException; use Give\Framework\Migrations\Contracts\Migration; use Give\Framework\Migrations\Exceptions\DatabaseMigrationException; use Give_Updates; /** * @since 2.24.0 */ class AddPaymentModeToSubscriptionTable extends Migration { /** * @inheritDoc * * @since 2.24.0 */ public static function title(): string { return 'Add payment mode column to subscription table'; } /** * @inheritDoc * * @since 2.24.0 */ public static function timestamp() { return strtotime('2022-11-30'); } /** * @inheritDoc * * @since 2.24.0 */ public static function id(): string { return 'add_paymentmode_to_subscription_table'; } /** * @inheritDoc * * @since 2.24.0 * * @throws DatabaseMigrationException */ public function run() { $this->addPaymentModeColumn(); $this->processPaymentModeForExistingSubscriptions(); } /** * Add payment mode column to subscription table. * * @since 2.24.0 * * @return void * @throws DatabaseMigrationException */ private function addPaymentModeColumn() { global $wpdb; $subscriptionTableName = "{$wpdb->prefix}give_subscriptions"; try { maybe_add_column( $subscriptionTableName, 'payment_mode', "ALTER TABLE `$subscriptionTableName` ADD COLUMN `payment_mode` varchar(20) NOT NULL DEFAULT '' AFTER `parent_payment_id`" ); } catch (DatabaseQueryException $exception) { throw new DatabaseMigrationException('An error occurred adding the payment mode column to the subscription table', 0, $exception); } } /** * Process payment mode for existing subscriptions. * * @since 2.24.0 * * @return void * @throws DatabaseMigrationException */ private function processPaymentModeForExistingSubscriptions() { global $wpdb; $subscriptionTableName = "{$wpdb->prefix}give_subscriptions"; $donationMetaTableName = "{$wpdb->prefix}give_donationmeta"; try { DB::query( " UPDATE $subscriptionTableName subscription LEFT JOIN $donationMetaTableName donationMeta ON subscription.parent_payment_id = donationMeta.donation_id SET subscription.payment_mode = donationMeta.meta_value WHERE donationMeta.meta_key = '_give_payment_mode' " ); } catch (DatabaseQueryException $exception) { throw new DatabaseMigrationException('An error occurred processing the payment mode for existing subscriptions', 0, $exception); } } }