Skip to main content
added 2874 characters in body
Source Link
CJNotts
  • 412
  • 1
  • 9
  • 43

Edit 3 20/08/2020

Finally seem to have this working now I now seem to have gotten this working: the Data.php file now looks as follows

    <?php

namespace CustomTrade\CallAttribute\Helper;
use Magento\Framework\App\Helper\Context;
use Magento\Customer\Api\CustomerRepositoryInterface;
use Magento\Customer\Model\Session as CustomerSession;
use Magento\Framework\App\Helper\AbstractHelper;
class Data extends AbstractHelper
{
    protected $customerRepository;
    public function __construct(
        Context $context,
        CustomerRepositoryInterface $customerRepository,
        CustomerSession $customerSession
        )
    {
        $this->customerRepository = $customerRepository;
        $this->customerSession = $customerSession;
        parent::__construct($context);
    }

    public function getOrderNumberValue()
    {
        $customerId  = $this->customerSession->getCustomer()->getId();
        $customer = $this->customerRepository->getById($customerId);
        return $customer->getCustomAttribute('trade_ordernumber')->getValue();
    }
}

And the success.phtml file is here

    <?php
/**
 * Copyright ? Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
?>
<?php /** @var $block \Magento\Checkout\Block\Onepage\Success */ ?>
<div class="checkout-success">
    <?php if ($block->getOrderId()) :?>
        <?php if ($block->getCanViewOrder()) :?>
                <h1><?= $block->escapeHtml(__('Your order # is: <span>%1</span>.', $block->getOrderId()), ['span']) ?></h1>
    
            <p><?= $block->escapeHtml(__('Your order number is: %1.', sprintf('<a href="%s" class="order-number"><strong>%s</strong></a>', $block->escapeUrl($block->getViewOrderUrl()), $block->getOrderId())), ['a', 'strong']) ?></p>
        <?php  else :?>
            <p><?= $block->escapeHtml(__('Your order # is: <span>%1</span>.', $block->getOrderId()), ['span']) ?></p>
        <?php endif;?>
            <p><?= $block->escapeHtml(__('We\'ll email you an order confirmation with details and tracking info.')) ?></p>
    <?php endif;?>

    <?= $block->getAdditionalInfoHtml() ?>

    <div class="actions-toolbar">
        <div class="primary">
            <a class="action primary continue" href="<?= $block->escapeUrl($block->getContinueUrl()) ?>"><span><?= $block->escapeHtml(__('Continue Shopping')) ?></span></a>
        </div>
    </div>
</div>


<?php
    $dataHelper = $this->helper('CustomTrade\CallAttribute\Helper\Data');
    echo $dataHelper->getOrderNumberValue();
?>

This seems to produce the correct result.

Edit 3 20/08/2020

Finally seem to have this working now I now seem to have gotten this working: the Data.php file now looks as follows

    <?php

namespace CustomTrade\CallAttribute\Helper;
use Magento\Framework\App\Helper\Context;
use Magento\Customer\Api\CustomerRepositoryInterface;
use Magento\Customer\Model\Session as CustomerSession;
use Magento\Framework\App\Helper\AbstractHelper;
class Data extends AbstractHelper
{
    protected $customerRepository;
    public function __construct(
        Context $context,
        CustomerRepositoryInterface $customerRepository,
        CustomerSession $customerSession
        )
    {
        $this->customerRepository = $customerRepository;
        $this->customerSession = $customerSession;
        parent::__construct($context);
    }

    public function getOrderNumberValue()
    {
        $customerId  = $this->customerSession->getCustomer()->getId();
        $customer = $this->customerRepository->getById($customerId);
        return $customer->getCustomAttribute('trade_ordernumber')->getValue();
    }
}

And the success.phtml file is here

    <?php
/**
 * Copyright ? Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
?>
<?php /** @var $block \Magento\Checkout\Block\Onepage\Success */ ?>
<div class="checkout-success">
    <?php if ($block->getOrderId()) :?>
        <?php if ($block->getCanViewOrder()) :?>
                <h1><?= $block->escapeHtml(__('Your order # is: <span>%1</span>.', $block->getOrderId()), ['span']) ?></h1>
    
            <p><?= $block->escapeHtml(__('Your order number is: %1.', sprintf('<a href="%s" class="order-number"><strong>%s</strong></a>', $block->escapeUrl($block->getViewOrderUrl()), $block->getOrderId())), ['a', 'strong']) ?></p>
        <?php  else :?>
            <p><?= $block->escapeHtml(__('Your order # is: <span>%1</span>.', $block->getOrderId()), ['span']) ?></p>
        <?php endif;?>
            <p><?= $block->escapeHtml(__('We\'ll email you an order confirmation with details and tracking info.')) ?></p>
    <?php endif;?>

    <?= $block->getAdditionalInfoHtml() ?>

    <div class="actions-toolbar">
        <div class="primary">
            <a class="action primary continue" href="<?= $block->escapeUrl($block->getContinueUrl()) ?>"><span><?= $block->escapeHtml(__('Continue Shopping')) ?></span></a>
        </div>
    </div>
</div>


<?php
    $dataHelper = $this->helper('CustomTrade\CallAttribute\Helper\Data');
    echo $dataHelper->getOrderNumberValue();
?>

This seems to produce the correct result.

deleted 380 characters in body
Source Link
CJNotts
  • 412
  • 1
  • 9
  • 43

Unfortunately this does not seem to have had the desired effect. The attribute does not appear on the checkout success page and the formatting seems to have disappeared. In addition the console is showing a 500 error for the Get function. I have included a screenshot below. enter image description here

Would you be able to let me know what I am doing wrong here?

Unfortunately this does not seem to have had the desired effect. The attribute does not appear on the checkout success page and the formatting seems to have disappeared. In addition the console is showing a 500 error for the Get function. I have included a screenshot below. enter image description here

Would you be able to let me know what I am doing wrong here?

deleted 9 characters in body
Source Link
CJNotts
  • 412
  • 1
  • 9
  • 43
<?php

namespace CustomTrade\CallAttribute\Helper;
use Magento\Framework\App\Helper\Context;
use Magento\Customer\Api\CustomerRepositoryInterface;
use Magento\Customer\Model\Session as CustomerSession;
class Data extends AbstractHelper
{
    protected $customerRepository;
    public function __construct(
        Context $context,
        CustomerRepositoryInterface $customerRepository,
        CustomeSession $customerSession
        )
    {
        $this->customerRepository = $customerRepository;
        $this->customerSession = $customerSession;
        parent::__construct($context);
    }
    public function getOrderNumberValue()
    {
        $customerId  = $this->customerSession->getCustomer()->getId();
        $customer = $this->customerRepository->getById($customerId);
        return $customer->getCustomAttribute>getData('trade_ordernumber');
    }
}
<?php

namespace CustomTrade\CallAttribute\Helper;
use Magento\Framework\App\Helper\Context;
use Magento\Customer\Api\CustomerRepositoryInterface;
use Magento\Customer\Model\Session as CustomerSession;
class Data extends AbstractHelper
{
    protected $customerRepository;
    public function __construct(
        Context $context,
        CustomerRepositoryInterface $customerRepository,
        CustomeSession $customerSession
        )
    {
        $this->customerRepository = $customerRepository;
        $this->customerSession = $customerSession;
        parent::__construct($context);
    }
    public function getOrderNumberValue()
    {
        $customerId  = $this->customerSession->getCustomer()->getId();
        $customer = $this->customerRepository->getById($customerId);
        return $customer->getCustomAttribute('trade_ordernumber');
    }
}
<?php

namespace CustomTrade\CallAttribute\Helper;
use Magento\Framework\App\Helper\Context;
use Magento\Customer\Api\CustomerRepositoryInterface;
use Magento\Customer\Model\Session as CustomerSession;
class Data extends AbstractHelper
{
    protected $customerRepository;
    public function __construct(
        Context $context,
        CustomerRepositoryInterface $customerRepository,
        CustomeSession $customerSession
        )
    {
        $this->customerRepository = $customerRepository;
        $this->customerSession = $customerSession;
        parent::__construct($context);
    }
    public function getOrderNumberValue()
    {
        $customerId  = $this->customerSession->getCustomer()->getId();
        $customer = $this->customerRepository->getById($customerId);
        return $customer->getData('trade_ordernumber');
    }
}
Update
Source Link
CJNotts
  • 412
  • 1
  • 9
  • 43
Loading
added 5 characters in body
Source Link
CJNotts
  • 412
  • 1
  • 9
  • 43
Loading
added 3719 characters in body
Source Link
CJNotts
  • 412
  • 1
  • 9
  • 43
Loading
Notice removed Canonical answer required by CJNotts
Bounty Ended with Vivek Kumar's answer chosen by CJNotts
edited title
Link
Vivek Kumar
  • 5.8k
  • 2
  • 24
  • 53
Loading
Notice added Canonical answer required by CJNotts
Bounty Started worth 100 reputation by CJNotts
Update code
Source Link
CJNotts
  • 412
  • 1
  • 9
  • 43
Loading
Source Link
CJNotts
  • 412
  • 1
  • 9
  • 43
Loading