私たちはMagentoにいくつかの拡張機能を使用しています。その1つはPaypalplusであり、必須です。Magento Paypalplus - PHP経由で支払い方法を無効にする
今、私たちは、ギフトクーポンを販売したいと思います。これは明らかにPaypalによって禁じられています。 PayPayplusを無効にするか、少なくとも支払い方法のいくつかを無効にする必要があります。
最初に完全に非アクティブにして、Javascriptが壊れてしまい、Magentoによって注文が拒否されました。 PPPが有効になっていると、他のビルトインメソッドはJをロードせず、代わりにカートにギフトクーポンが存在するときにロードされていないPPP-Jを使用しようとします。
私はそれ自身のすべてのメソッドをレンダリングする独自のJを使用して、禁止された支払いメソッドを無効にしようとしました。
window.ppp = PAYPAL.apps.PPP({ ... })
これは、PPP Jsを設定する必要があります。しかし、私はそれが不可能であるかどうか、オブジェクトに渡される引数、または部分的にまたは完全に無効化することを知っていません 独自の支払方法。誰でもそれを教えてもらえますか?私はしばらく時間を探しますが、このAPIに関するドキュメントを見つけることができません。ここで
は、MagentoのPPP-拡張に含まれ、PPPをレンダリングする必要があり、完全なコードです:
<div id="ppplus"></div>
<script type="text/javascript">
if(typeof payment == 'undefined') {
var payment = {};
}
function selectMethod(code) {
try {
if(typeof awOSCPayment != "undefined") {
awOSCPayment.currentMethod = code;
}
} catch (e) {
}
document.getElementById('p_method_' + code).click();
}
window.externMethodEnabled = false;
window.startPPP = function() {
if(typeof window.thirdPartyObject == 'undefined') {
window.thirdPartyObject = <?php echo $this->getThirdPartyJsonObject(); ?>;
window.thirdPartyMethodObject = <?php echo $this->getThirdPartyMethodJsonObject(); ?>;
}
document.cookie = 'paypalplus_session=; Path=/checkout/onepage; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
document.cookie = 'paypalplus_session=; Path=/checkout; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
document.cookie = 'paypalplus_session=; Path=/firecheckout; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
document.cookie = 'paypalplus_session=; Path=/onestepcheckout; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
window.pppId = '<?php echo $this->getPayPalPaymentId(); ?>';
selectMethod('<?php echo Iways_PayPalPlus_Model_Payment::METHOD_CODE; ?>');
window.ppp = PAYPAL.apps.PPP(
{
approvalUrl: "<?php echo $paymentExperience; ?>",
placeholder: "ppplus",
mode: "<?php echo Mage::getStoreConfig('iways_paypalplus/api/mode'); ?>",
useraction:"commit",
buttonLocation:"outside",
<?php if($this->isPuiSandboxMode()) : ?>
showPuiOnSandbox: true,
<?php endif; ?>
<?php if($this->showLoadingIndicator()) : ?>
showLoadingIndicator: true,
<?php endif; ?>
country:"<?php echo $this->getCountryId(); ?>",
language:"<?php echo $this->getLanguage(); ?>",
onContinue: function() {
payment.save()
},
onThirdPartyPaymentMethodSelected:function (data) {
this.lastCall = 'onThirdPartyPaymentMethodSelected';
selectMethod(window.thirdPartyObject[data.thirdPartyPaymentMethod]);
},
enableContinue: function (data) {
if(this.lastCall != 'onThirdPartyPaymentMethodSelected') {
selectMethod('<?php echo Iways_PayPalPlus_Model_Payment::METHOD_CODE; ?>');
}
this.lastCall = 'enableContinue';
try {
if($$('#payment-buttons-container > button').length > 0) {
$$('#payment-buttons-container > button')[0].enable();
}
if($('onestepcheckout-place-order') != null) {
$('onestepcheckout-place-order').enable();
}
if($$('#review-buttons-container > button').length > 0) {
$$('#review-buttons-container > button')[0].enable();
}
if($('onestepcheckout-button-place-order') != null) {
$('onestepcheckout-button-place-order').enable();
}
if($$('#checkout-review-submit > button.opc-btn-checkout').length > 0) {
$$('#checkout-review-submit > button.opc-btn-checkout')[0].enable();
}
if($$('#aw-onestepcheckout-place-order-button').length > 0) {
$$('#aw-onestepcheckout-place-order-button')[0].enable();
}
}catch (e) {
console.log(e);
}
},
disableContinue: function (data) {
if(!window.externMethodEnabled) {
try {
if($$('#payment-buttons-container > button').length > 0) {
$$('#payment-buttons-container > button')[0].disable();
}
if($('onestepcheckout-place-order') != null) {
$('onestepcheckout-place-order').disable();
}
if($$('#review-buttons-container > button').length > 0) {
$$('#review-buttons-container > button')[0].disable();
}
if($('onestepcheckout-button-place-order') != null) {
$('onestepcheckout-button-place-order').disable();
}
if($$('#checkout-review-submit > button.opc-btn-checkout').length > 0) {
$$('#checkout-review-submit > button.opc-btn-checkout')[0].disable();
}
if($$('#aw-onestepcheckout-place-order-button').length > 0) {
$$('#aw-onestepcheckout-place-order-button')[0].disable();
}
}catch (e) {
console.log(e);
}
}
},
<?php echo $this->getThirdPartyMethods(); ?>
});
}
window.startPPP();
function checkStep() {
try {
if(typeof window.checkout != 'undefined' && typeof window.lastStep == 'undefined') {
window.lastStep = window.checkout.accordion.currentSection;
}
if (typeof window.lastStep != 'undefined' && window.lastStep != window.checkout.accordion.currentSection) {
window.lastStep = checkout.accordion.currentSection;
if (checkout.accordion.currentSection == "opc-payment") {
window.startPPP();
}
}
} catch(e) {
}
}
window.setInterval(checkStep, 1000);
</script>
ご清聴ありがとうございました。