Skip to content
Snippets Groups Projects

Start webhook implementation

Merged Christel Loftus requested to merge magento_webhooks into dev

Files

 
<?php
 
 
namespace BobGroup\BobGo\Observer;
 
 
use Magento\Framework\Event\ObserverInterface;
 
use Magento\Framework\Event\Observer;
 
use Psr\Log\LoggerInterface;
 
 
class ModifyShippingDescription implements ObserverInterface
 
{
 
public const CODE = 'bobgo';
 
 
protected $logger;
 
 
public function __construct(LoggerInterface $logger)
 
{
 
$this->logger = $logger;
 
}
 
 
public function execute(Observer $observer)
 
{
 
// Get the order object from the event
 
$order = $observer->getEvent()->getOrder();
 
 
// Get the current shipping description
 
$shippingDescription = $order->getShippingDescription();
 
 
// Log the original shipping description
 
$this->logger->info('Original Shipping Description: ' . $shippingDescription);
 
 
// Get the shipping method used in the order (e.g., bobgo_10303_39_1)
 
$shippingMethod = $order->getShippingMethod();
 
 
// Get the method title from the shipping description (which might already include the title)
 
$methodTitle = $this->extractMethodTitle($shippingDescription);
 
 
// Log the method title for debugging
 
$this->logger->info('Extracted Method Title: ' . $methodTitle);
 
 
// Set the new dynamic shipping description based only on MethodTitle
 
$newDescription = $methodTitle;
 
 
// Update the shipping description in the order
 
$order->setShippingDescription($newDescription);
 
 
// Optionally log the new shipping description
 
$this->logger->info('Updated Shipping Description: ' . $newDescription);
 
}
 
 
/**
 
* Helper function to extract the method title from the original shipping description
 
*
 
* @param string $shippingDescription
 
* @return string
 
*/
 
private function extractMethodTitle($shippingDescription)
 
{
 
// Find the position of the last dash in the string
 
$lastDashPosition = strrpos($shippingDescription, ' - ');
 
 
// If a dash is found, extract the part after the last dash
 
if ($lastDashPosition !== false) {
 
return trim(substr($shippingDescription, $lastDashPosition + 3)); // +3 to skip the ' - ' part
 
}
 
 
// If no dash is found, return the full description (fallback)
 
return $shippingDescription;
 
}
 
 
}
Loading