Pergunta

Tenho um site Magento com quatro lojas.Para cada cliente serão atribuídos horários de corte diferentes para cada loja.

O usuário está restrito a adicionar produtos de apenas uma loja por vez.Quando o usuário acessa a página de checkout, tenho que obter o horário limite da loja onde ele adicionou o produto.

Consegui o código da loja.

Os atributos do cliente para o horário limite da loja são os seguintes

`delivery_cutoff_time_abc` // here abc is the store code
`delivery_cutoff_time_def` // here def is the store code
`delivery_cutoff_time_ghi` // here ghi is the store code
`delivery_cutoff_time_jkl` // here jkl is the store code

Com base nos produtos adicionados ao carrinho, recebi o código da loja, seja eleabc ou def ou então.

Agora tenho que obter o valor do objeto do cliente conforme abaixo

$customer = Mage::getSingleton('customer/session')->getCustomer();
$customer->getDeliveryCutoffTimeAbc();

Para fazer isso, tenho o código da loja abaixo

$storeCode = "abc";

Eu tenho que usar dinâmico como abaixo

$customer->getDeliveryCutoffTime.$storeCode();

Não recebe o valor.Como posso torná-lo dinâmico?

Foi útil?

Solução

Tentar

$storeCode = ucfirst("abc");

$function = "getDeliveryCutoffTime".$storeCode;

$customer->$function();

Outras dicas

Em PHP, isso também pode ser feito assim:

$storeCode = "abc";
$customer->{"getDeliveryCutoffTime" . ucfirst($storeCode)}();

Esses métodos getter "mágicos" do Magento chamam o método getData() eventualmente.Então getDeliveryCutoffTimeAbc() resultará em uma chamada para getData("delivery_cutoff_time_abc").

Então você também pode ligar para isso imediatamente:

$storeCode = "abc";
$customer->getData("delivery_cutoff_time_" . $storeCode);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top