Version 4.1.19.4

This commit is contained in:
Neo committed 2025-12-19 05:42:01 -08:00
1 parent 2bd5025018
commit 0dc2aee5ed
312 files changed
+53730 -32118

No files matched your search

File diff suppressed because it is too large. Load diff
+16 -16
View File
@@ -1,18 +1,18 @@
{
"nexus_status_1_front": "Открыт",
"nexus_status_1_admin": "Открыт",
"nexus_status_2_front": "На рассмотрении",
"nexus_status_2_admin": "На рассмотрении",
"nexus_status_3_front": "Ожидает вашего ответа",
"nexus_status_3_admin": "Закрыто",
"nexus_status_4_front": "Решено",
"nexus_status_4_admin": "Решено",
"nexus_status_4_set": "Отметить решённым",
"nexus_status_5_front": "Отмечено как спам - ответьте, если это ошибка",
"nexus_status_5_admin": "Спам",
"nexus_status_6_front": "В процессе",
"nexus_status_6_admin": "В работе",
"nexus_severity_1": "Обычный",
"cm_phone": "Номер телефона",
"nexus_ccfield_1": "Номер телефона"
"nexus_status_1_front": "Open",
"nexus_status_1_admin": "Open",
"nexus_status_2_front": "On Hold",
"nexus_status_2_admin": "Hold",
"nexus_status_3_front": "Awaiting your reply",
"nexus_status_3_admin": "Closed",
"nexus_status_4_front": "Resolved",
"nexus_status_4_admin": "Resolved",
"nexus_status_4_set": "Mark Resolved",
"nexus_status_5_front": "Marked as Spam - Reply if this is an error",
"nexus_status_5_admin": "Spam",
"nexus_status_6_front": "In Progress",
"nexus_status_6_admin": "Working",
"nexus_severity_1": "Normal",
"cm_phone": "Phone Number",
"nexus_ccfield_1": "Phone Number"
}
+34 -32
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="nexus">
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.billingForm.js" javascript_type="controller" javascript_version="101093" javascript_position="1000050"><![CDATA[/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.billingForm.js" javascript_type="controller" javascript_version="101099" javascript_position="1000050"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -53,7 +53,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.register.js" javascript_type="controller" javascript_version="101093" javascript_position="1000050">/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.register.js" javascript_type="controller" javascript_version="101099" javascript_position="1000050">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -84,7 +84,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.review.js" javascript_type="controller" javascript_version="101093" javascript_position="1000050">/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.review.js" javascript_type="controller" javascript_version="101099" javascript_position="1000050">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -117,7 +117,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.shippingForm.js" javascript_type="controller" javascript_version="101093" javascript_position="1000050">/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.shippingForm.js" javascript_type="controller" javascript_version="101099" javascript_position="1000050">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -140,7 +140,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/clients" javascript_name="ips.clients.referrals.js" javascript_type="controller" javascript_version="101093" javascript_position="1000100">/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/clients" javascript_name="ips.clients.referrals.js" javascript_type="controller" javascript_version="101099" javascript_position="1000100">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -169,7 +169,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/customer" javascript_name="ips.customer.stats.js" javascript_type="controller" javascript_version="101093" javascript_position="1000050">/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/customer" javascript_name="ips.customer.stats.js" javascript_type="controller" javascript_version="101099" javascript_position="1000050">/**
* IPS Community Suite 4
* (c) 2016 Invision Power Services - http://www.invisionpower.com
*
@@ -195,7 +195,7 @@
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/gateways" javascript_name="ips.gateways.authorizenet.js" javascript_type="controller" javascript_version="101093" javascript_position="1000050"><![CDATA[/**
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/gateways" javascript_name="ips.gateways.authorizenet.js" javascript_type="controller" javascript_version="101099" javascript_position="1000050"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -255,7 +255,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/gateways" javascript_name="ips.gateways.stripe.js" javascript_type="controller" javascript_version="101093" javascript_position="1000050"><![CDATA[/**
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/gateways" javascript_name="ips.gateways.stripe.js" javascript_type="controller" javascript_version="101099" javascript_position="1000050"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -280,8 +280,10 @@
* Init
*/
setup: function(){
ips.loader.get( ['https://js.stripe.com/v2/'] );
this.scope.show();
var self = this;
ips.loader.get( ['https://js.stripe.com/v2/'] ).then(function(){
self.scope.show();
});
},
/**
@@ -401,7 +403,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/hosting" javascript_name="ips.nexus.hosting.accountform.js" javascript_type="controller" javascript_version="101093" javascript_position="1000100">/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/hosting" javascript_name="ips.nexus.hosting.accountform.js" javascript_type="controller" javascript_version="101099" javascript_position="1000100">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -433,7 +435,7 @@
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/misc" javascript_name="ips.misc.print.js" javascript_type="controller" javascript_version="101093" javascript_position="1000100">/**
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/misc" javascript_name="ips.misc.print.js" javascript_type="controller" javascript_version="101099" javascript_position="1000100">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -455,7 +457,7 @@
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/store" javascript_name="ips.store.productoptions.js" javascript_type="controller" javascript_version="101093" javascript_position="1000150"><![CDATA[/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/store" javascript_name="ips.store.productoptions.js" javascript_type="controller" javascript_version="101099" javascript_position="1000150"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -510,7 +512,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/store" javascript_name="ips.store.productselector.js" javascript_type="controller" javascript_version="101093" javascript_position="1000150"><![CDATA[/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/store" javascript_name="ips.store.productselector.js" javascript_type="controller" javascript_version="101099" javascript_position="1000150"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -570,7 +572,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.cartReview.js" javascript_type="controller" javascript_version="101093" javascript_position="1000150">/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.cartReview.js" javascript_type="controller" javascript_version="101099" javascript_position="1000150">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -670,7 +672,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.currencySelect.js" javascript_type="controller" javascript_version="101093" javascript_position="1000150">/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.currencySelect.js" javascript_type="controller" javascript_version="101099" javascript_position="1000150">/**
* IPS Community Suite 4
* (c) 2015 Invision Power Services - http://www.invisionpower.com
*
@@ -710,7 +712,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.giftCard.js" javascript_type="controller" javascript_version="101093" javascript_position="1000150"><![CDATA[/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.giftCard.js" javascript_type="controller" javascript_version="101099" javascript_position="1000150"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -798,7 +800,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.packagePage.js" javascript_type="controller" javascript_version="101093" javascript_position="1000150"><![CDATA[/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.packagePage.js" javascript_type="controller" javascript_version="101099" javascript_position="1000150"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -1013,7 +1015,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.register.js" javascript_type="controller" javascript_version="101093" javascript_position="1000150"><![CDATA[/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.register.js" javascript_type="controller" javascript_version="101099" javascript_position="1000150"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -1162,7 +1164,7 @@
},
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.emailsetup.js" javascript_type="controller" javascript_version="101093" javascript_position="1000200">/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.emailsetup.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -1198,7 +1200,7 @@
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.filterCheckboxSet.js" javascript_type="controller" javascript_version="101093" javascript_position="1000200">/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.filterCheckboxSet.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200">/**
* IPS Community Suite 4
* (c) 2016 Invision Power Services - http://www.invisionpower.com
*
@@ -1243,7 +1245,7 @@
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.list.js" javascript_type="controller" javascript_version="101093" javascript_position="1000200"><![CDATA[/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.list.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200"><![CDATA[/**
* IPS Community Suite 4
* (c) 2016 Invision Power Services - http://www.invisionpower.com
*
@@ -1426,7 +1428,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.message.js" javascript_type="controller" javascript_version="101093" javascript_position="1000200"><![CDATA[/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.message.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -1482,7 +1484,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.metamenu.js" javascript_type="controller" javascript_version="101093" javascript_position="1000200"><![CDATA[/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.metamenu.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -1656,7 +1658,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.multimod.js" javascript_type="controller" javascript_version="101093" javascript_position="1000200"><![CDATA[/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.multimod.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200"><![CDATA[/**
* IPS Community Suite 4
* (c) 2016 Invision Power Services - http://www.invisionpower.com
*
@@ -1756,7 +1758,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.pendingalert.js" javascript_type="controller" javascript_version="101093" javascript_position="1000200">/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.pendingalert.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -1783,7 +1785,7 @@
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.replyArea.js" javascript_type="controller" javascript_version="101093" javascript_position="1000200"><![CDATA[/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.replyArea.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200"><![CDATA[/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -1867,7 +1869,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.request.js" javascript_type="controller" javascript_version="101093" javascript_position="1000200"><![CDATA[/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.request.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200"><![CDATA[/**
* IPS Community Suite 4
* (c) 2016 Invision Power Services - http://www.invisionpower.com
*
@@ -1995,7 +1997,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.splitForm.js" javascript_type="controller" javascript_version="101093" javascript_position="1000200">/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/support" javascript_name="ips.support.splitForm.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200">/**
* IPS Community Suite 4
* (c) 2016 Invision Power Services - http://www.invisionpower.com
*
@@ -2064,7 +2066,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/support" javascript_name="ips.support.rate.js" javascript_type="controller" javascript_version="101093" javascript_position="1000200">/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/support" javascript_name="ips.support.rate.js" javascript_type="controller" javascript_version="101099" javascript_position="1000200">/**
* IPS Community Suite 4
* (c) 2013 Invision Power Services - http://www.invisionpower.com
*
@@ -2086,7 +2088,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="templates" javascript_name="ips.templates.store.js" javascript_type="template" javascript_version="101093" javascript_position="1000250"><![CDATA[ips.templates.set('nexus.store.images', " \
<file javascript_app="nexus" javascript_location="admin" javascript_path="templates" javascript_name="ips.templates.store.js" javascript_type="template" javascript_version="101099" javascript_position="1000250"><![CDATA[ips.templates.set('nexus.store.images', " \
<div class='ipsGrid_span3 ipsAttach ipsImageAttach ipsPad_half ipsAreaBackground_light' id='{{id}}' data-role='file' data-fileid='{{id}}' data-fullsizeurl='{{imagesrc}}' data-thumbnailurl='{{thumbnail}}' data-isImage='1'>\
<ul class='ipsList_inline ipsImageAttach_controls'>\
<li><input type='radio' name='{{field_name}}_primary_image' value='{{id}}' title='{{#lang}}makePrimaryProductImage{{/lang}}' data-ipsTooltip></li>\
@@ -2109,7 +2111,7 @@
</div>\
");
]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.store.js" javascript_type="template" javascript_version="101093" javascript_position="1000250"><![CDATA[ips.templates.set('nexus.store.productImage', " \
<file javascript_app="nexus" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.store.js" javascript_type="template" javascript_version="101099" javascript_position="1000250"><![CDATA[ips.templates.set('nexus.store.productImage', " \
<a href='{{fullURL}}' data-fullURL='{{fullURL}}' class='cNexusProduct_primaryImage ipsContained' data-ipsLightbox data-ipsLightbox-group='product' data-ipsProductZoom>\
<img src='{{thumbURL}}' class='ipsImage ipsImage_thumb'>\
</a>\
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="nexus" version="101093">
<app key="nexus" version="101099">
<word key="__app_nexus" js="0">Commerce</word>
<word key="menutab__nexus" js="0">Commerce</word>
<word key="menutab__nexus_icon" js="0">usd</word>
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<theme name="Default" author_name="Invision Power Services, Inc" author_url="http://www.invisionpower.com">
<field sc_key="cm_store_view" sc_type="Select" sc_multiple="0" sc_updated="1481280196" sc_app="nexus" sc_default="grid" sc_tab_key="custom" sc_show_in_vse="0" sc_title="themesetting_cm_store_view" sc_order="10" sc_condition="">[{&quot;key&quot;:&quot;grid&quot;,&quot;value&quot;:&quot;Grid&quot;},{&quot;key&quot;:&quot;list&quot;,&quot;value&quot;:&quot;List&quot;}]</field>
<field sc_key="cm_store_view" sc_type="Select" sc_multiple="0" sc_updated="1494432562" sc_app="nexus" sc_default="grid" sc_tab_key="custom" sc_show_in_vse="0" sc_title="themesetting_cm_store_view" sc_order="10" sc_condition="">[{&quot;key&quot;:&quot;grid&quot;,&quot;value&quot;:&quot;Grid&quot;},{&quot;key&quot;:&quot;list&quot;,&quot;value&quot;:&quot;List&quot;}]</field>
<template template_group="billingagreements" template_name="view" template_data="$billingAgreement, $purchases, $transactions" template_location="admin" template_app="nexus"><![CDATA[{{if $billingAgreement->status() == $billingAgreement::STATUS_ACTIVE and !$billingAgreement->next_cycle}}
<p class="ipsMessage ipsMessage_warning">{lang="billing_agreement_run_failed" sprintf="$billingAgreement->acpUrl()->setQueryString( 'do', 'reconcile' )"}</p>
{{endif}}
+7 -1
View File
@@ -198,5 +198,11 @@
"101090": "4.1.19 Beta 1",
"101091": "4.1.19 Beta 2",
"101092": "4.1.19 Beta 3",
"101093": "4.1.19"
"101093": "4.1.19",
"101094": "4.1.19.1",
"101095": "4.1.19.2 Beta 1",
"101096": "4.1.19.2",
"101097": "4.1.19.2",
"101098": "4.1.19.3",
"101099": "4.1.19.4"
}
@@ -47,7 +47,11 @@ if ( \IPS\Settings::i()->maxmind_key )
$maxMind->setTransaction( $transaction );
}
$transaction->checkFraudRulesAndCapture( $maxMind );
$memberJustCreated = $transaction->checkFraudRulesAndCapture( $maxMind );
$transaction->sendNotification();
\IPS\Session::i()->setMember( $transaction->invoice->member ); // This is in case the checkout was a guest, meaning checkFraudRulesAndCapture() may have just created an account. There is no security issue as we have just verified they were just bounced back from 2CheckOut
if ( $memberJustCreated )
{
\IPS\Session::i()->setMember( $memberJustCreated );
}
\IPS\Output::i()->redirect( $transaction->url() );
@@ -44,7 +44,6 @@ try
{
$transaction->executeFraudAction( $fraudResult, FALSE );
$transaction->sendNotification();
\IPS\Session::i()->setMember( $transaction->invoice->member ); // This is in case the checkout was a guest, meaning checkFraudRulesAndCapture() may have just created an account. There is no security issue as we have just verified they were just bounced back from PayPal
\IPS\Output::i()->redirect( $transaction->url() );
}
@@ -96,15 +95,15 @@ try
'invoice_title' => $transaction->invoice->title,
) );
$transaction->approve();
$memberJustCreated = $transaction->approve();
if ( $memberJustCreated )
{
\IPS\Session::i()->setMember( $memberJustCreated );
}
}
$transaction->sendNotification();
if ( $transaction->invoice->member->member_id )
{
\IPS\Session::i()->setMember( $transaction->invoice->member );
}
\IPS\Output::i()->redirect( $transaction->url() );
}
}
@@ -141,16 +140,14 @@ try
}
if ( !$fraudResult or $fraudResult === \IPS\nexus\Transaction::STATUS_PAID )
{
$transaction->captureAndApprove();
$memberJustCreated = $transaction->captureAndApprove();
if ( $memberJustCreated )
{
\IPS\Session::i()->setMember( $memberJustCreated );
}
}
$transaction->sendNotification();
/* If we checked out as a guest, and captureAndApprove() created an account, we need to log them in. There is no security issue as we have just verified they were just bounced back from PayPal */
if ( $transaction->invoice->member->member_id )
{
\IPS\Session::i()->setMember( $transaction->invoice->member );
}
/* Redirect */
\IPS\Output::i()->redirect( $transaction->url() );
}
@@ -1099,15 +1099,12 @@ class _checkout extends \IPS\Dispatcher\Controller
{
/* The payment has been approved */
if ( $this->invoice->amountToPay()->amount->isZero() )
{
/* If a guest is checking out, we need to remember that so we can automatically log them in */
$isGuest = (bool) !$this->invoice->member->member_id;
{
/* Mark the invoice paid */
$extra = $this->invoice->status_extra;
$extra['type'] = 'zero';
$this->invoice->status_extra = $extra;
$this->invoice->markPaid();
$memberJustCreated = $this->invoice->markPaid();
/* Redirect */
$destination = $this->invoice->return_uri ?: $this->invoice->url();
@@ -1117,9 +1114,9 @@ class _checkout extends \IPS\Dispatcher\Controller
}
else
{
if ( $isGuest )
if ( $memberJustCreated )
{
\IPS\Session::i()->setMember( $this->invoice->member );
\IPS\Session::i()->setMember( $memberJustCreated );
}
\IPS\Output::i()->redirect( $destination );
@@ -1421,7 +1418,7 @@ class _checkout extends \IPS\Dispatcher\Controller
/* Check Fraud Rules and capture */
try
{
$transaction->checkFraudRulesAndCapture( $maxMind );
$memberJustCreated = $transaction->checkFraudRulesAndCapture( $maxMind );
}
catch ( \LogicException $e )
{
@@ -1437,9 +1434,9 @@ class _checkout extends \IPS\Dispatcher\Controller
}
/* Logged in? */
if ( !\IPS\Member::loggedIn()->member_id and $this->invoice->member->member_id )
if ( $memberJustCreated )
{
\IPS\Session::i()->setMember( $this->invoice->member );
\IPS\Session::i()->setMember( $memberJustCreated );
}
/* Send email receipt */
@@ -425,7 +425,16 @@ class _product extends \IPS\Content\Controller
$normalPrice->amount = $normalPrice->amount->add( new \IPS\Math\Number( number_format( $term['cost'][ $memberCurrency ]['amount'], \IPS\nexus\Money::numberOfDecimalsForCurrency( $memberCurrency ), '.', '' ) ) );
}
$return['renewal'] = \IPS\Member::loggedIn()->language()->addToStack( 'and_renewal', FALSE, array( 'sprintf' => array( new \IPS\nexus\Purchase\RenewalTerm( new \IPS\nexus\Money( ( new \IPS\Math\Number( number_format( $term['cost'][ $memberCurrency ]['amount'], \IPS\nexus\Money::numberOfDecimalsForCurrency( $memberCurrency ), '.', '' ) ) )->add( ( new \IPS\Math\Number( number_format( $_data['renewalAdjustment'], \IPS\nexus\Money::numberOfDecimalsForCurrency( $memberCurrency ), '.', '' ) ) ) ), $memberCurrency ), new \DateInterval( 'P' . $term['term'] . mb_strtoupper( $term['unit'] ) ), $package->tax ? \IPS\nexus\Tax::load( $package->tax ) : NULL, $term['add'] ) ) ) );
$return['renewal'] = \IPS\Member::loggedIn()->language()->addToStack( 'and_renewal', FALSE, array( 'sprintf' => array(
( new \IPS\nexus\Purchase\RenewalTerm(
new \IPS\nexus\Money(
( new \IPS\Math\Number( number_format( $term['cost'][ $memberCurrency ]['amount'], \IPS\nexus\Money::numberOfDecimalsForCurrency( $memberCurrency ), '.', '' ) ) )
->add( ( new \IPS\Math\Number( number_format( $_data['renewalAdjustment'], \IPS\nexus\Money::numberOfDecimalsForCurrency( $memberCurrency ), '.', '' ) ) ) )
, $memberCurrency ),
new \DateInterval( 'P' . $term['term'] . mb_strtoupper( $term['unit'] ) ),
$package->tax ? \IPS\nexus\Tax::load( $package->tax ) : NULL, $term['add']
) )->toDisplay()
) ) );
}
else
{
@@ -42,8 +42,12 @@ class _Upgrade
$queries[] = array( 'table' => 'nexus_customers', 'query' => \IPS\Db::i()->dropIndex( 'nexus_customers', 'field_' . $field['f_id'] ) );
}
\IPS\Db::i()->returnQuery = TRUE;
$queries[] = array( 'table' => 'nexus_customers', 'query' => \IPS\Db::i()->changeColumn( 'nexus_customers', 'field_' . $field['f_id'], array( 'name' => 'field_' . $field['f_id'], 'type' => 'MEDIUMTEXT' ) ) );
\IPS\Db::i()->returnQuery = TRUE;
$queries[] = array( 'table' => 'nexus_customers', 'query' => \IPS\Db::i()->addIndex( 'nexus_customers', array( 'type' => 'fulltext', 'name' => 'field_' . $field['f_id'], 'columns' => array( 'field_' . $field['f_id'] ) ) ) );
\IPS\Db::i()->returnQuery = FALSE;
}
@@ -1527,11 +1527,13 @@ class _Invoice extends \IPS\Patterns\ActiveRecord
* Mark as paid
*
* @param \IPS\Member|NULL $member The member changing the status. Only set if the status is being manually changed by an admin.
* @return void
* @return \IPS\Member|NULL If the invoice belonged to a guest, a member will be created by approving and returned here
* @note It is the responsibility of the code calling this to log the action on the customer's account *before* calling this method
*/
public function markPaid( \IPS\Member $member = NULL )
{
{
$return = NULL;
if ( $this->status !== static::STATUS_PAID )
{
/* Create the member account if this was a guest */
@@ -1554,6 +1556,7 @@ class _Invoice extends \IPS\Patterns\ActiveRecord
$memberToSave->changed[ $k ] = $v;
}
$memberToSave->save();
$return = $memberToSave;
}
$this->member = $memberToSave;
$this->guest_data = NULL;
@@ -1959,6 +1962,8 @@ class _Invoice extends \IPS\Patterns\ActiveRecord
$this->status_extra = $extra;
$this->save();
}
return $return;
}
/**
+16 -2
View File
@@ -2476,7 +2476,14 @@ class _Package extends \IPS\Node\Model
*/
protected function upgradeDowngradeForm( \IPS\nexus\Purchase $purchase, $overrideRestrictions = FALSE )
{
$currency = $purchase->original_invoice->currency;
try
{
$currency = $purchase->original_invoice->currency;
}
catch ( \Exception $e )
{
$currency = $purchase->member->defaultCurrency();
}
$options = array();
$desciptions = array();
$toggles = array();
@@ -2578,7 +2585,14 @@ class _Package extends \IPS\Node\Model
protected function costToUpgrade( \IPS\nexus\Purchase $purchase )
{
$package = \IPS\nexus\Package::load( $purchase->item_id );
$currency = $purchase->original_invoice->currency;
try
{
$currency = $purchase->original_invoice->currency;
}
catch ( \Exception $e )
{
$currency = $purchase->member->defaultCurrency();
}
$priceOfExistingPackage = json_decode( $package->base_price, TRUE );
$priceOfExistingPackage = $priceOfExistingPackage[ $currency ]['amount'];
@@ -505,7 +505,7 @@ class _Transaction extends \IPS\Patterns\ActiveRecord
* Check fraud rules and capture
*
* @param \IPS\nexus\Fraud\MaxMind\Request|NULL $maxMind *If* MaxMind is enabled, the request object will be passed here so gateway can additional data before request is made
* @return void
* @return \IPS\Member|NULL If the invoice belonged to a guest, a member will be created by approving and returned here
* @throws \LogicException
*/
public function checkFraudRulesAndCapture( $maxMind=NULL )
@@ -520,8 +520,9 @@ class _Transaction extends \IPS\Patterns\ActiveRecord
/* If we're not being fraud blocked, we can capture and approve */
if ( $fraudResult === static::STATUS_PAID )
{
$this->captureAndApprove();
return $this->captureAndApprove();
}
return NULL;
}
/**
@@ -566,7 +567,7 @@ class _Transaction extends \IPS\Patterns\ActiveRecord
/**
* Capture and approve
*
* @return void
* @return \IPS\Member|NULL If the invoice belonged to a guest, a member will be created by approving and returned here
* @throws \LogicException
*/
public function captureAndApprove()
@@ -581,7 +582,7 @@ class _Transaction extends \IPS\Patterns\ActiveRecord
'invoice_title' => $this->invoice->title,
) );
$this->approve();
return $this->approve();
}
/**
@@ -601,7 +602,7 @@ class _Transaction extends \IPS\Patterns\ActiveRecord
* Approve
*
* @param \IPS\Member|NULL $by The staff member approving, or NULL if it's automatic
* @return void
* @return \IPS\Member|NULL If the invoice belonged to a guest, a member will be created by approving and returned here
*/
public function approve( $by = NULL )
{
@@ -622,8 +623,9 @@ class _Transaction extends \IPS\Patterns\ActiveRecord
/* Mark the invoice paid if necessary */
if ( !$this->invoice->amountToPay()->amount->isGreaterThanZero() )
{
$this->invoice->markPaid();
return $this->invoice->markPaid();
}
return NULL;
}
/**