vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.7 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=228)
-   -   Miscellaneous Hacks - vBulletin and iDevAffiliate Integration (https://vborg.vbsupport.ru/showthread.php?t=190848)

yahoooh 09-17-2008 01:19 AM

is integrated for users in vbulletin?

Quarterbore 09-17-2008 01:53 AM

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:

if($vbulletin->options['idevaffiliate_active'] AND $ipsaved != '1'){
$escapedhash $db->escape_string($hash);

      
$vbulletin->db->query_write("UPDATE " TABLE_PREFIX "paymentinfo
      SET ipaddress = " 
IPADDRESS "
      WHERE hash = " 
$escapedhash "
      "
);
     
$ipsaved '1';


Question - Is this IP information important and required (remember I don't use the script)? I ask as with vBulletin we know more about a user then just the IP they used to pay including registration IP, all IPs they used, plus e-mail, etc. Again, I have not used the affiliate script so just curious why this matters as we know who the user is and that is the most important matter for us.

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 :eek: 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

vb_mp 09-17-2008 01:59 PM

Thanks for your comments Ken.

I have left my answers below each part of yours:

Quote:

Step 1: payments.php simply adds the IP address of the person who has purchased the subscription.
iDevAffiliate tracks recurring commissions by IP. Since we can't guarantee the same IP on each recurring payment, the only way to solve this is to save the IP on initial payment in the vbulletin database and pull it out on recurring payment to pass to iDevAffiliate.
(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:

Step 2: payment_gateway.php saves the sale in the affiliate script
Excellent observation here. As I mentioned in my original post I am new to vBulletin and I could not find the hooks to do that part.

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!

mambomouth 09-17-2008 02:06 PM

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:D

Cheers,
Brian

vb_mp 09-17-2008 02:09 PM

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.

mambomouth 09-17-2008 02:23 PM

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

mambomouth 09-17-2008 02:50 PM

You know that another good mod for this is to add Google analytics code for sale
on ROI for ad's.

vb_mp 09-17-2008 05:59 PM

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?

Quarterbore 09-17-2008 06:16 PM

Quote:

Originally Posted by vb_mp (Post 1624278)
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?

I can help with that tonight after work as I don't need to have the idevaffiliate script to work on that ;)

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:

    function build_user_subscription($subscriptionid$subid$userid$regdate 0$expirydate 0$checkperms true

That will likely mean a query would be needed but I would need to drop some test code into that hook to see what variables are in memory that we can use. I hope I didn't waste a bunch of your time with my suggestion and I will see what I can get out of here after work.

Quarterbore 09-17-2008 06:38 PM

Edit - never mind I had the wrong hook :o

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:

$vars get_defined_vars();
print_r($vars);
exit(); 

I need to look at this later.


All times are GMT. The time now is 11:20 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.01265 seconds
  • Memory Usage 1,761KB
  • 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
  • (3)bbcode_php_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete