ম্যাজেন্টো 2.1
নীচে উল্লিখিত ব্লকটি এখন Magento\Checkout\Block\Onepage\Success
ম্যাজেন্টো ২.০
আপনি কেবলমাত্র এই পৃষ্ঠায় স্থানীয়ভাবে পুনরুদ্ধার করতে পারবেন সেটি হ'ল getRealOrderId()
সংজ্ঞায়িত পদ্ধতিটি ব্যবহার করে অর্ডার আইডিMagento\Checkout\Block\Success
এইভাবে, অর্ডার আইডিটি পেতে আপনি আপনার টেম্পলেটটিতে নিম্নলিখিতগুলিতে কল করতে পারেন:
$block->getRealOrderId();
তবে, আমি বুঝতে পারি যে এটি আপনার প্রয়োজনের মতো নয়।
যে ক্ষেত্রে, যদিও আপনি বস্তুর ব্যবস্থাপক সরাসরি ব্যবহার করতে পারে, এটা বাঞ্ছনীয় নয়। আপনার এই ব্লকের প্রিফেন্সগুলি সংজ্ঞায়িত করতে একটি কাস্টম মডিউল ব্যবহার করা উচিত ।
ইন app/code/Vendor/Module/etc/frontend/di.xml
আপনাকে নিম্নলিখিত কোড প্রয়োজন:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Magento\Checkout\Block\Success"
type="Vendor\Module\Block\Checkout\Success"/>
</config>
তারপরে app/code/Vendor/Module/Block/Checkout/Success.php
:
<?php
namespace Vendor\Module\Block\Checkout;
class Success extends \Magento\Checkout\Block\Success
{
/**
* @return int
*/
public function getGrandTotal()
{
/** @var \Magento\Sales\Model\Order $order */
$order = $this->_orderFactory->create()->load($this->getLastOrderId());
return $order->getGrandTotal();
}
}
স্বাভাবিকটি ভুলে যাবেন না app/code/Vendor/Module/etc/module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Vendor_Module" setup_version="0.0.1" />
</config>
পাশাপাশি app/code/Vendor/Module/registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Vendor_Module',
__DIR__
);
একবার আপনি হয়ে গেলে এবং আপনি নিম্নলিখিত কমান্ডগুলি চালিয়ে গেছেন:
php bin/magento module:enable Vendor_Module
php bin/magento setup:upgrade
আপনার টেমপ্লেটে নিম্নলিখিতগুলি কল করতে সক্ষম হওয়া উচিত:
$block->getGrandTotal();
আরও পদ্ধতি যুক্ত করা হচ্ছে
ব্লক শ্রেণিতে ট্র্যাক করার সময় আপনি নিম্নলিখিতগুলি যুক্ত করতে পারেন যা কার্যকর হতে পারে:
public function getSubtotal()
{
/** @var \Magento\Sales\Model\Order $order */
$order = $this->_orderFactory->create()->load($this->getLastOrderId());
return $order->getSubtotal();
}
public function getDiscountAmount()
{
/** @var \Magento\Sales\Model\Order $order */
$order = $this->_orderFactory->create()->load($this->getLastOrderId());
return $order->getDiscountAmount();
}
তারপরে আপনি আপনার টেম্পলেট থেকে নিম্নলিখিতগুলিতে কল করতে সক্ষম হবেন:
$block->getSubtotal();
$block->getDiscountAmount();