Shortcode
Registra o shortcode que deve ser adicionado na página em que o plugin deve aparecer.
O shortcode a ser adicionado é [claroluz].
Ele também aceita o parâmetro show para definir se deve ser carregado em todas as resoluções, apenas no mobile ou apenas no desktop. Por padrão o valor é all.
Exemplo:
[claroluz show="mobile"]
O shortcode aceita mais um parâmetro, layout, ele foi pensado para que o mesmo plugin possa ter variações e através deste parâmetro é possível escolher qual layout deve ser carregado. Atualmente ele só possui o layout default e este é o padrão.
Exemplo:
[claroluz layout="layout-2"]
É possível combinar ambos os parâmetros, para por exemplo, carregar um eventual layout layout-2 apenas no mobile.
Exemplo:
[claroluz show="mobile" layout="layout-2"]
Informações sobre o código
Como mencionado acima, o parâmetro show recebe all por padrão e layout recebe default por padrão, da seguinte forma:
$showOn = $atts['show'] ?? 'all';
$layout = $atts['layout'] ?? 'default';
showOn
O valor de $showOn define em qual resolução o shortcode deve ser carregado, ele recebe o valor de show, conforme explicado anteriormente.
Ele é utilizado em uma condicional e se a condição for verdadeira, o o HTML do plugin é renderizado, caso contrário, nada é renderizado.
if ($showOn === 'all' || ($showOn === 'mobile' && $isMobile) || ($showOn === 'desktop' && !$isMobile)) {
// The content
}
layout
O valor de $layout define qual layout deve ser carregado, ele recebe o valor de layout, conforme explicado anteriormente.
O valor da variável sobrescreve a string {{layoutVersion}} no HTML do plugin.
$this->content = str_replace('{{layoutVersion}}', "claroluz-layout-{$layout}", $this->content);
isMobile
Uma outra variável importante no setup do layout é a variável $isMobile, ela é responsável por verificar se o dispositivo é um mobile ou não. Ela é definida da seguinte forma:
$isMobile = wp_is_mobile();
Com esta informação, o algorimo altera a string {{type}} para o tipo de uploader que deve iniciar por padrão. Se for mobile o valor é type-qr e se for desktop o valor é type-pdf.
$this->content = str_replace('{{type}}', $isMobile ? 'type-qr' : 'type-pdf', $this->content);
privacyUrl
O plugin não tem conhecimento da URL da página de privacidade do site, este dado é obtido via função do WordPress e sobrescrito na string {{privacyUrl}}.
$this->content = str_replace('{{privacyUrl}}', !empty($privacyUrl) ? $privacyUrl : '#', $this->content);