I'm trying to hide some text / code based in the shipping_method.phtml based on whether the country of the selected or entered shipping address is France or not in .
The only code I found was
Mage::getSingleton('checkout/type_onepage')->getQuote()->getShippingAddress()->getCountryId()
But all this does is return the countryID of my default address in the address book. So the code works when the address is already in the address book, but not if the customer decides he/she want to send it to a new address.
So I need a way to access the selected / entered CountryID in php/javascript (should be stored in the session somewhere, because it's shown in the progress sidebar).
Please note that I'm using standard onepage checkout in magento CE 1.7.0.2.
You can try this code $this->getQuote()->getShippingAddress()->getCountry()
to get country id.
The problem is this code gets executed when the page loads and basically the shipping methods block is just hidden until you get to that step. This means that
$this->getQuote()->getShippingAddress()->getCountry()
l
The only thing that gets loaded by Ajax is the available shipping methods, so I solved it by hooking into
app/design/base/default/template/checkout/onepage/shipping_method/available.phtml
and adding the following javascript code
<?php //Show extra shipping options only if the shipping address is outside of FRANCE ?>
<script type="text/javascript">
var countryID = '<?= Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getData('country_id') ?>';
jQuery('#ownTransport')[countryID == 'FR' ? 'hide' : 'show']();
</script>
For reference : The code in
app/design/XXX/XXX/template/checkout/onepage/shipping_method.phtml
was
<form id="co-shipping-method-form" class="stack-form" action="">
<div id="checkout-shipping-method-load">
<?php echo $this->getChildHtml('available') ?>
</div>
<script type="text/javascript">
//<![CDATA[
var shippingMethod = new ShippingMethod('co-shipping-method-form', "<?php echo $this->getUrl('checkout/onepage/saveShippingMethod') ?>");
//]]>
</script>
<div id="onepage-checkout-shipping-method-additional-load">
<?php echo $this->getChildHtml('additional') ?>
</div>
<?php //ADD AMASTY FIELDS ?>
<?php //Show extra shipping options only if the shipping address is outside of FRANCE ?>
<div id="ownTransport">
<?php
echo Mage::helper('amorderattr')->fields('shipping_method');
?>
</div>
<div id="shipping-method-buttons-container" class="buttons-set">
<button class="button" onclick="shippingMethod.save()"><?php echo $this->__('Continue') ?></button>
<span class="please-wait" id="shipping-method-please-wait" style="display:none;"><?php echo $this->__('Loading') ?></span>
</div>
Hope this helps someone out !
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With