govindak
govindak

Reputation: 452

programmatically create transaction memberpress

I found following snippet on github:

https://gist.github.com/supercleanse/8010675

    if(is_plugin_active('memberpress/memberpress.php')) {
      add_action( 'user_register', 'mp_auto_enroll' );
      //add_action( 'gform_user_registered', 'mp_auto_enroll', 10, 4 );

      function mp_auto_enroll($user_id, $user_config=array(), $entry='', $user_pass='') {
        $txn = new MeprTransaction();
        $txn->user_id = $user_id;
        $txn->product_id = 8; // TODO: Make sure you change this value to whatever the product_id will be
        $txn->trans_num  = uniqid();
        $txn->status     = MeprTransaction::$complete_str;
        $txn->gateway    = MeprTransaction::$free_gateway_str;
        $txn->expires_at = 0; // 0 = Lifetime, null = product default expiration
        $txn->store();
      }
    }

Above code adds only non-recurring transaction, how to add recurring transaction

I tried to add

 $txn->amount = 100;

 $txn->period_type="month";

its not working , any clues please

Upvotes: 8

Views: 2604

Answers (1)

govindak
govindak

Reputation: 452

The following code worked , hope it helps somebody else too .

            $sub = new MeprSubscription();
            $sub->user_id = $user_ID;
            $sub->product_id = 123;
            $sub->price = 12.99;
            $sub->total = 12.99;
            $sub->period = 1;
            $sub->period_type = 'months';
            $sub->status = MeprSubscription::$active_str;
            $sub_id = $sub->store();

            $txn = new MeprTransaction();
            $txn->amount = 12.99;
            $txn->total = 12.99;
            $txn->user_id = $user_ID;
            $txn->product_id = 123;
            $txn->status = MeprTransaction::$complete_str;
            $txn->txn_type = MeprTransaction::$payment_str;
            $txn->gateway = 'manual';
            $txn->expires_at = gmdate('Y-m-d 23:59:59', (time() + MeprUtils::months(1)));
            $txn->subscription_id = $sub_id;
            $txn->store();

Upvotes: 14

Related Questions