Mesmo tendo como especialidade oWordPress, às vezes me deparo com jobs onde preciso fazer personalizações em outros Sistemas de Gerenciamento de Conteúdo. E esta semana foi uma dessas vezes, onde tive que trabalhar com o Magento.
Como este é um blog post de snippet vou considerar que você já sabe o que é o Magento e como trabalhar com a plataforma. E tenha pelo menos o básico de noção em programação de módulos. Caso não saiba por onde começar, o pessoal da Magenteiro tem um artigo falando sobre criação de módulos no Magento.
Dando um pouco de contexto, neste job meu cliente tinha 4 inputs de endereço e queria colocar 3 deles como obrigatório. Algo bem comum para ser feito no Woocommerce, por exemplo, mas todos sabemos que o Magento pode ser um pouco complicado.
Então agora que você já sabe do que estamos falando, vamos começar a deixar os campos de endereço obrigatórios no Magento!
Código para deixar os campos de endereço obrigatórios no Magento
IMPORTANTE: Para deixar os campos de endereços obrigatórios no Magento, primeiro você deve criar seu módulo personalizado seguindo o passo a passo que informei acima e, depois, seguir as instruções abaixo.
Passo 01:
Manual do dono do site WordPress
Um guia abrangente especialmente elaborado para proprietários não técnicos sobre como fazer a manutenção do site feito com WordPress.
Dentro do diretório etc do seu módulo, crie o arquivo di.xml com o seguinte conteúdo:
Caminho para diretório: seu_nome/nome_do_modulo/etc
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="MagentoCheckoutBlockCheckoutAttributeMerger">
<plugin name="shippingAddress" type="seu_nomenome_do_moduloPluginCheckoutBlockCheckoutAttributeMergerPlugin"/>
</type>
</config>
Passo 02:
Dentro do seu módulo crie os diretórios conforme abaixo, exatamente na mesma ordem que se encontram:
PluginCheckoutBlockCheckoutAttributeMerger
Sendo que no diretório AttributeMerger deverá ser criado o arquivo Plugin.php
Passo 03:
Agora falta pouco para deixar os campos de endereço obrigatórios no Magento!
Dentro do arquivo criado Plugin.php adicione o seguinte código:
<?php
namespace seu_nomenome_do_moduloPluginCheckoutBlockCheckoutAttributeMerger;
class Plugin {
public function afterMerge(MagentoCheckoutBlockCheckoutAttributeMerger $subject, $result)
{
if (array_key_exists('street', $result)) {
$result['street']['children'][X]['validation'] = [
'required-entry' => true
];
}
return $result;
}
}
Agora, substitua o X pelo index do campo que você quer colocar como obrigatório. Caso queira colocar outros, basta replicar o $result com outro valor em X.
IMPORTANTE: Estamos lidando com uma array neste código, então o index deve seguir as mesmas propriedades.
Espero que você consiga deixar os campos de endereço obrigatórios no Magento! Caso tenha alguma dúvida, deixe seu comentário abaixo que eu tentarei auxiliar você!
Continue lendo
Qual é a melhor linguagem de programação para iniciantes?
A seguir, passaremos algumas dicas bem importantes sobre como descobrir qual é a melhor linguagem [...]
WPNews #000
O mundo do WordPress nunca para de se movimentar, com novas atualizações, lançamentos de plugins [...]