The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
vBulletin and iDevAffiliate Integration Details »» | |||||||||||||||||||||||||
NOTE: I have it installed on 3.7x, I haven't tried earlier versions.
Description: I have been searching around for a plugin to allow vBulletin and iDevIntegration (for affiliate management of vbulletin paid subscriptions) and could not find any. I contacted iDevAffiliate and their response was that they did not know enough about vbulletin to create a plugin themselves but they explain what I had to do on the iDevAffiliate side to make things work. Thanks to vbulletin.org members Marco van Herwaarden, Dismounted, Delphiprogrammi, Opserty for pointing me in the right direction as this is my first vbulletin plugin. This mod integrates iDevAffiliate commission tracking. NOTE: Keep in mind, I assume that you are fairly well versed and comfortable with editing files/templates and following the flow of things. Installing: ********************************* STEP 1 ********************************* In payments.php in your forum root find the following code lines: Code:
/* insert query */ $db->query_write(" INSERT INTO " . TABLE_PREFIX . "paymentinfo (hash, completed, subscriptionid, subscriptionsubid, userid) VALUES ('" . $db->escape_string($hash) . "', 0, $subscriptionid, $subscriptionsubid, " . $vbulletin->userinfo['userid'] . ") "); Code:
/* insert query */ $insertQuery = "INSERT INTO " . TABLE_PREFIX . "paymentinfo (hash, completed, subscriptionid, subscriptionsubid, userid"; $insertQuery .= $vbulletin->options['idevaffiliate_active'] ? ", ipaddress)" : ")"; $insertQuery .= "VALUES ('" . $db->escape_string($hash) . "', 0, $subscriptionid, $subscriptionsubid, " . $vbulletin->userinfo['userid']; $insertQuery .= $vbulletin->options['idevaffiliate_active'] ? ", '" . IPADDRESS . "')" : ")"; $db->query_write($insertQuery); STEP 2 ********************************* In payment_gateway.php file in your forum root find the following code lines: Code:
if ($apiobj->type == 1) { $subobj->build_user_subscription($apiobj->paymentinfo['subscriptionid'], $apiobj->paymentinfo['subscriptionsubid'], $apiobj->paymentinfo['userid']); Code:
if ($vbulletin->options['idevaffiliate_active'] AND function_exists('curl_init') AND $ch = curl_init()) { $idevQuery = "idev_saleamt=" . $apiobj->paymentinfo['amount'] . "&ip_address=" . $apiobj->paymentinfo['ipaddress'] . "&idev_ordernum=" . $apiobj->paymentinfo['paymentinfoid']; curl_setopt($ch, CURLOPT_URL, "http://www.YOURDOMAINNAME.com/YOURIDEVINSTALATIONFOLDER/sale.php"); curl_setopt($ch, CURLOPT_TIMEOUT, 15); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDSIZE, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, $idevQuery); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, 'vBulletin via cURL/PHP'); $result = curl_exec($ch); curl_close($ch); } STEP 3 ********************************* Install the idevaffiliate_integration Product via the Plugin Manager ********************************* STEP 4 ********************************* Go to AdminCP -> vBulletin Options -> iDevAffiliate Integration Settings and enable use of iDevAffiliate by selecting 'Yes' and saving. That's it, you are ready to use iDevAffiliate with vBulletin. Dont Forget To MARK AS INSTALLED And Also Don't Forget To Visit DNXpert.com Show Your Support
|
Comments |
#22
|
|||
|
|||
is integrated for users in vbulletin?
|
#23
|
|||
|
|||
OK, I am looking at the code and I do not have an iDevAffilaite package (yet) so I need to guess a little what is going on here so bear with me as I try to summarize what this is doing.
Step 1: payments.php simply adds the IP address of the person who has purchased the subscription. Comment: It really is too bad vBulletin doesn't have a hook right after the code you quote as we could simply run an update where "hash" = $hash. The hook that is in the while loop could be used however if we added a variable for example: paidsub_order_paymentbit Plugin: PHP Code:
Step 2: payment_gateway.php saves the sale in the affiliate script This is really an amazing file in vBulletin as there is not a single hook in this file There is no way around a file edit in this file but I am not convinced we have to use the file to do this. I say this as we do have hooks in class file that does subscriptions: ./includes/class_paid_subscription.php I am curious why we can't use the paidsub_build hook to log the sale into the affiliate script? There could also be a plugin added to paidsub_delete to handle reversals too (I think). Summary: I am really not trying to be critical as I am very thankful you shared your work as I have been considering adding an affiliate script to my own premium site. I am really not going to be able to test this without buying the software but I think that if you look at the possibility of moving the STEP 2 of this to the Class that you may be able to remove the file edits. Also, as I said above, I don't see the value in the "Step 1" addition as vBulletin allows us to know a whole lot about our users that are far above the IP they are using when they pay for a subscription I welcome feedback on my humble oppinions as I know there are developers and coders on here with far more skill then I have. Cheers, Ken |
#24
|
|||
|
|||
Thanks for your comments Ken.
I have left my answers below each part of yours: Quote:
(In iDevAffiliate they use the IP on recurring payment to give the commission to the right person since on recurring payment there is no other way to figure out what belongs to whom). I guess they could have solved it by just using a payment id or hash or whatnot but that is up to idevaffiliate not vbulletin. It is also important that the IP is stored on the initial payment and not on the recurring payments... hence the insert at the point in payments.php where the insert to paymentinfo table happens. Quote:
I will modify the plugin to include the calls to the two hooks - this will eliminate 1 file edit and leave us with just the one file edit in payments.php Thanks! |
#25
|
|||
|
|||
Hello Ken,
idevaffiliate is limited to what one can do with extra information. Most of the files are encoded so there not much on the Idev script that one can edit. There are three Optional Variables that one can pass to the sales.php page which records the sales of products etc. See Variables setting page: http://demo.idevdirect.com/admin/set...tion=37&type=4 I own another script called Jam: http://jam.jrox.com/ Which I think is a better script because you can reverse charge backs plus it more secure because it uses a key API to make sure that it your script calling the sales page. Personally I love to see an affiliate system finished in VB it has a refer hook built in. I think they started it but did not finish it. If a hook in the payment class etc. and there was maybe another two to three tables added to VB this could be done. By the way still testing this mod but it has not record any sales on it at this point. As you can see I have been at this for some time old post: https://vborg.vbsupport.ru/showthread.php?t=140446 Again thanks vb_mp and all for taking the steps to get this done Cheers, Brian |
#26
|
|||
|
|||
Hi Brian,
You can test it with a family member's paypal. Clear your cookies and reset your IP (switch DSL OFF and ON) then purchase through your affiliate link. I have got affiliates making commissions on my forum. |
#27
|
|||
|
|||
Hi VB_MP,
Thanks believe it works I have been getting sales. But its just not been recorded I'll wait a day or two more. Where I setup aff's links are on Google ad and other links so It should work etc. Cheers, Brian |
#28
|
|||
|
|||
You know that another good mod for this is to add Google analytics code for sale
on ROI for ad's. |
#29
|
|||
|
|||
Hm @Quarterbore,
I am trying to move the payment_gateway edit code above into a plugin on the paidsub_build hook. When in the build_user_subscription method in class_paid_subscriptions, we don't have direct access to paymentinfo data including paymentinfo['amount'] paymentinfo['ipaddress'] paymentinfo['paymentinfoid']; How do you suggest I retrieve them? With an extra query? |
#30
|
|||
|
|||
Quote:
Now, I do see that the hook is inside of a function so the only values I expect we have to work in there are the ones defined: PHP Code:
|
#31
|
|||
|
|||
Edit - never mind I had the wrong hook
You can get the variables in memory from this code if you add it to a plugin off the hook we need to test but it didn't work for me when I just did a test subscription via PayPal so I am not sure why... PHP Code:
|
Thread Tools | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|