vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Is this right (sql query) for Paid Subscriptions (https://vborg.vbsupport.ru/showthread.php?t=215672)

doa24uk 06-08-2009 05:59 PM

Is this right (sql query) for Paid Subscriptions
 
Hi guys,

I'm trying to make it so that once a paid subscription is processed, my users reputation points are automatically updated to reflect the subscription they've bought (as well as their primary usergroup being upgraded).

I have 2 subscriptions set up.

Subscription 1 = 20 rep points
Subscription 2 = 50 rep points

Ok here's the idea for my (pseudo-) code. This would go at the end of payment_gateway.php if I'm not mistaken....

Code:

SELECT * from subscriptionlog WHERE userid=$userid AND status=1
// This gets all info about the subscription where the status denotes it as active (therefore if a user has previous expired subscriptions it won't grab them)

switch

case=1 {

SELECT * from user WHERE userid=$userid;

$newreputation = $row['reputation']+20;

UPDATE user SET reputation=$newreputation, usergroupid=10 WHERE userid=$userid;
{

case=2{

SELECT * from user WHERE userid=$userid;

$newreputation = $row['reputation']+50;

UPDATE user SET reputation=$newreputation, usergroupid=10 WHERE userid=$userid;

default;
//Something went wrong, do nothing;

Would this work or do I need extra error checking to make sure failed transactions aren't included in this??


Many thanks in advance, I'm quite desperate for this!

DoA

Carnage 06-11-2009 02:56 PM

I've been looking at doing something similar myself. From my research into how the process works i'd suggest taking a look at class_paid_subscription.php.

line 338 contains a hook thats called once a user has completed payment for a subscription.

PHP Code:

    /**
    * Creates user subscription
    *
    * @param    int        The id of the subscription
    * @param    int        The subid of the subscription, this indicates the length
    * @param    int        The userid the subscription is to be applied to
    * @param    int        The start timestamp of the subscription
    * @param    int        The expiry timestamp of the subscription
    *
    */
    
function build_user_subscription($subscriptionid$subid$userid$regdate 0$expirydate 0

Thats the method the hook appears in you would need to use $subscriptionid and possibly $subid in deciding what to do in your switch statement.

As a final note, try to use the vbulletin datamanagers for editing the users reputation as opposed to doing it manually.


All times are GMT. The time now is 08:17 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01000 seconds
  • Memory Usage 1,716KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (1)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (2)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete