Integrar produtos do OpenCart no seu tema do WordPress

Essa é um dica para exibir os produtos do “módulo de destaques” que geralmente é exibido na minha página inicial OpenCart, em um site WordPress.

Traduzido e adaptado de: http://forum.opencart.com/viewtopic.php?t=36145, post feito pelo usuário elastic.

Siga os passos:

  • Crie um arquivo chamado curl.php
  • Cole nele o seguinte código (e salvá-lo).
1
2
3
4
5
<?php
$ch = curl_init("http://www.opencartinstall.com");
$html = curl_exec($ch);
print $html;
?>
<?php
$ch = curl_init("http://www.opencartinstall.com");
$html = curl_exec($ch);
print $html;
?>

(altere “www.opencartinstall.com” para o domínio onde você instalou sua loja OpenCart)

  • Copie o seu arquivo recém-criado curl.php para a pasta raiz do seu tema WordPress.
  • Provavelmente já tenha, mas caso não tenha um link para carregar o jquery, inclua a linha abaixo dentro do seu head.
1
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
  • No local onde você gostaria que seus produtos da loja OpenCart fossem exibidos no site WordPress, cole este javascript;
1
2
3
4
5
<script type="text/javascript">
$("document").ready(function() {
$("#pull-featured").load("<?php bloginfo( 'template_url' ); ?>/curl.php #featured");
});
</script>
<script type="text/javascript">
$("document").ready(function() {
$("#pull-featured").load("<?php bloginfo( 'template_url' ); ?>/curl.php #featured");
});
</script>
  • E depois disto, adicione….
1
<div id="pull-featured"></div>
<div id="pull-featured"></div>
  • no seu arquivo catalog/view/theme/yourtheme/template/module/featured.tpl do OpenCart adicione o id featured dentro da div, então altere o código abaixo.
1
2
<div class="box">
  <div class="box-heading"><?php echo $heading_title; ?></div>
<div class="box">
  <div class="box-heading"><?php echo $heading_title; ?></div>
  • para isso…
1
2
<div class="box" id="featured">
  <div class="box-heading"><?php echo $heading_title; ?></div>
<div class="box" id="featured">
  <div class="box-heading"><?php echo $heading_title; ?></div>

(novamente, substitua ’yourtheme’ acima com o nome da pasta do seu tema OpenCart).

basicamente o que está acontecendo é que o javascript está pedindo ao arquivo curl.php para “carregar” a página inicial da loja. Uma vez que é carregado, ele encontra dentro do código da página o div que temos dado a ID “featured”, e  puxa tudo dentro dela na div “pull-featured”do arquivo do tema WordPress.

No entanto, ela apenas carrega e exibe o html como é, então você precisa alterar o estilo no css do seu tema WordPress.

Mais importante ainda é que o suplemento ao carrinho de botões não vai funcionar. Isto porque, em OpenCart versão 1.5 do suplemento ao carrinho de botões no módulo dedestaque contam com javascript para funcionar. O modelo de wordpress não tem esse javascript como ela vive no local OpenCart. Potencialmente, poderíamos carregar o javascript em Worpdress, mas eu tive problemas ao fazer isso, então eu tive que ” usar a criatividade”. Eu criei um outro botão Adicionar ao carrinho que iria trabalhar fora do OpenCart, e escondeu o botão OpenCart nativa com css .

então, no arquivo catalog/view/theme/yourtheme/template/module/featured.tpl do OpenCart

  • Mude a linha:
1
<div class="cart"><a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button"><span><?php echo $button_cart; ?></span></a></div>
<div class="cart"><a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button"><span><?php echo $button_cart; ?></span></a></div>
  • Para isso:
1
<code><div class="cart oc-addtocart"><a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button"><span><?php echo $button_cart; ?></span></a></div>    <div class="wp-addtocart"> <form action="http://www.opencartinstall.com/index.php?route=checkout/cart" method="post"> <input type="hidden" name="product_id" value="<?php echo $product['product_id']; ?>" /> <input type="hidden" name="quantity" value="1" /> <input type="submit" name="submit" value="ADD TO CART" class="submit" /> </form></div></code>
<code><div class="cart oc-addtocart"><a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button"><span><?php echo $button_cart; ?></span></a></div>    <div class="wp-addtocart"> <form action="http://www.opencartinstall.com/index.php?route=checkout/cart" method="post"> <input type="hidden" name="product_id" value="<?php echo $product['product_id']; ?>" /> <input type="hidden" name="quantity" value="1" /> <input type="submit" name="submit" value="ADD TO CART" class="submit" /> </form></div></code>
  • No CSS do seu tema WordPress, coloque isso:
1
.oc-addtocart {display:none;}
.oc-addtocart {display:none;}
  • No CSS do seu tema OpenCart, coloque isso:
1
.wp-addtocart {display:none;}
.wp-addtocart {display:none;}

Pronto isso irá fazer com que os produtos do modulo de destaque sejam exibidos dentro de um site em WordPress.

Como criar tamanhos de imagem adicionais no WordPress

Tutorial traduzido do site – http://www.wpbeginner.com/wp-tutorials/how-to-create-additional-image-sizes-in-wordpress/

Neste artigo vamos mostrar como adicionar tamanhos de imagem adicional no WordPress.

WordPress tem uma funcionalidade nativa para usar images em miniaturas. Há também um a função nativa add_image_size() que permite que você especifique tamanhos de imagem e dar-lhea opção de recorte. Usando estas funções básicas em seu tema pode essencialmente eliminar a necessidade de um script de terceiros, como TimThumb na maioria dos casos.

Registrando tamanhos de imagem adicionais para o seu tema

Você terá que começar adicionando o suporte de miniaturas colocando o seguinte código no seu arquivo functions.php:

1
add_theme_support( 'post-thumbnails' );
add_theme_support( 'post-thumbnails' );

Uma vez que você habilitar o suporte para miniaturas, agora você pode usar a funcionalidade de registro de tamanhos de imagem adicional com a função add_image_size(). O uso da função add_image_size é assim:
add_image_size (‘nome-do-tamanho, largura, altura, recorte);

Abaixo um exemplo do uso da função:

1
2
3
add_image_size( 'sidebar-thumb', 120, 120, true ); // Hard Crop Mode
add_image_size( 'homepage-thumb', 220, 180 ); // Soft Crop Mode
add_image_size( 'singlepost-thumb', 590, 9999 ); // Unlimited Height Mode
add_image_size( 'sidebar-thumb', 120, 120, true ); // Hard Crop Mode
add_image_size( 'homepage-thumb', 220, 180 ); // Soft Crop Mode
add_image_size( 'singlepost-thumb', 590, 9999 ); // Unlimited Height Mode

Agora, se você observar, temos três tipo diferente de tamanhos de imagem. Cada um tem diferentes modos tais como Hard Crop Mode, Soft Crop Mode, e Unlimited Height Mode. Então vamos ver sobre cada exemplo e como e quando você pode usá-los.

Hard Crop Mode - Como você observa, há um valor “verdadeiro”, acrescentado depois da altura. O valor verdadeiro diz para o WordPress para cortar a imagem para o tamanho que temos definido (neste caso 120 x 120px). Este é o método que usamos muito em nossos projetos de tema para se certificar que tudo é proporcional e não “quebre” nosso layout. Esta função irá automaticamente cortar a imagem ou a partir dos lados ou a partir da parte superior e inferior, dependendo do tamanho. A desvantagem de recorte é que você não pode controlar qual parte da imagem é exibida.

Correção por Mike Little - Quando você tiver feito o upload de uma imagem e antes de inserir no post, você pode clicar em “editar imagem” e a partir daí mudar a miniatura ou o toda a imagem, escala, girar ou inverter a imagem, e para a miniatura selecionar a parte exata da imagem que você deseja.

Soft Crop Mode - Este modo está ativo por padrão é por isso que você não vê qualquer valor adicional após a altura. Este método redimensiona a imagem proporcionalmente sem distorcê-la. Então você não pode ter as dimensões que você queria. Normalmente, ela corresponde à dimensão de largura e as alturas são diferentes com base na proporção de cada imagem. Veja um exemplo:

Unlimited Height Mode - Há momentos em que você tem imagens grandes que deseja usar em seu projeto, mas você quer ter certeza de que a largura é limitada. O principal uso que encontramos para este tipo de tamanho da imagem é em posts de infográfico. Infográficos tendem a ser muito longo e cheio de informações. Hard Crop Mode em uma página com um post único não é uma ótima idéia. Mas por natureza infográficos são mais largos do que a largura de conteúdo. Então o que você pode fazer é especificar uma largura que não vai quebrar o seu projeto, deixando a altura a ser ilimitado, para que todos infográfico pode ser mostrado sem qualquer distorção. Veja um exemplo:

Exibindo tamanhos de imagem adicionais em seu tema WordPress

Agora que você adicionou a funcionalidade para os tamanhos de imagem desejada vamos dar uma olhada em como exibi-las em seu tema WordPress. Abra o arquivo de tema em que deseja exibir a imagem e cole o seguinte código:

1
<?php the_post_thumbnail( 'your-specified-image-size' ); ?>
<?php the_post_thumbnail( 'your-specified-image-size' ); ?>

Nota: Este trecho de código deve ser colado dentro do loop post.

Isso é tudo o que você realmente tem que fazer para mostrar o tamanho de imagem adicional em seu tema WordPress. Você provavelmente deve envolvê-la por aí com o estilo que se adapta à sua necessidade.

Regenerando tamanhos adicionais de imagem

Se você não está fazendo isso em um site novo, então você provavelmente terá de se regenerar miniaturas. O jeito que a função add_image_size forma () funciona somente a partir do ponto em que foi adicionado no tema. Assim, todas as imagens que foram adicionadas depois da inclusão desta função não terá o novo tamanho. Então o que precisamos fazer é regenerar o tamanho da imagem nova para imagens dos velhos post. Isto é facilitado pelo plugin chamado Thumbnails Regenerate. Uma vez que você instalar e ativar este plugin, uma nova opção é adicionada no menu: Ferramentas » Regen. Thumbnails.

Clique no icone Regenerate Thumbnail e aguarde o plugin fazer o trabalho dele.

Habilitando tamanhos adicionais de imagens para o conteúdo do seu post

Mesmo que você tenha habilitado mais tamanhos de imagem em seu tema, o uso é limitado apenas ao seu tema que não faz qualquer sentido. Todos os tamanhos de imagem estão sendo gerados independentemente, então por que não torná-lo disponível para o autor do post para usá-lo dentro do conteúdo do post. Você pode fazer isso usando um plugin chamado Simple Image Sizes.

Uma vez que você instalar e ativar o plugin será adicionado a nova opção em Configurações » Media page. Você verá uma lista de tamanhos que você definiu no seu tema. Tudo que você tem a fazer é verificar a caixa que diz “Show in post insertion”.

Uma vez que você marcar esta caixa, os tamanhos adicionais estarão disponíveis para serem usadas no conteúdo do post.

Repare na imagem acima, temos todos os tamanhos de imagem que definimos no nosso tema disponível para serem usados no conteúdo do post.

O plugin Simple Image Sizes também permite criar tamanhos de imagem personalizada diretamente do painel do WordPress.

Acreditamos que este método deve ser adicionado por todos os desenvolvedores de tema WordPress. O que acham?

Pesquisa com filtro simples no WordPress

Depois de muito tempo hibernando sem postar nada devido a correria do dia-a-dia voltei com mais um tutorial para WordPress, dessa vez vamos ver como fazer um filtro de pesquisa simples.

1° passo – Crie uma página e um arquivo para receber o resultado da pesquisa.

No caso eu criei a página como nome “Resultado da Pesquisa”, que por consequência ficou com o slug resultado-da-pesquisa, sendo assim criei também um arquivo no tema chamado page-resultado-da-pesquisa.php.

2° passo – O formulário de pesquisa.

Neste exemplo eu criei um arquivo index.php no tema para colocar o formulário de pesquisa.

1
2
3
4
5
6
7
8
9
10
<?php get_header(); ?>
    <form role="search" id="searchform" method="get" action="<?php bloginfo('home'); ?>/resultado-da-busca/">
        <fieldset>
            <legend>Formulario de pesquisa com filtro simples</legend>
            <input type="text" name="pesquisa" id="pesquisa"/>
                 <?php wp_dropdown_categories(array('taxonomy' => 'category', 'name' => 'cat', 'id'=> 'cat')); ?>
            <input type="submit" id="searchsubmit" value="ok" class="submit"/>
        </fieldset>
    </form>
<?php get_footer(); ?>
<?php get_header(); ?>
	<form role="search" id="searchform" method="get" action="<?php bloginfo('home'); ?>/resultado-da-busca/">
		<fieldset>
			<legend>Formulario de pesquisa com filtro simples</legend>
			<input type="text" name="pesquisa" id="pesquisa"/>
				 <?php wp_dropdown_categories(array('taxonomy' => 'category', 'name' => 'cat', 'id'=> 'cat')); ?>
			<input type="submit" id="searchsubmit" value="ok" class="submit"/>
		</fieldset>
	</form>
<?php get_footer(); ?>

Explicando: Como disse acima, o formulário de pesquisa está no arquivo index.php, insiro as templates tag para pegar o header e footer do tema(não precisa de nada em especial nos arquivos header.php e footer.php, apenas o padrão), depois crio o formulário da pesquisa com o action apontando para a página Resultado da Pesquisa criada anteriormente, na linha 5 é crio um input com o nome pesquisa que será usado posteriormente. Na linha 6 listo em um select os termos da taxonomia padrão que é category e do o nome dos campos como cat.

3° passo – editar o arquivo page-resultado-da-pesquisa.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php get_header(); ?>
<h1>Resultados da pesquisa</h1>
<?php
$termo_pesquisa = trim($_GET['pesquisa']);
$cat_pesquisa = $_GET['cat'];
 
$pesquisa_query = $wpdb->get_results( "SELECT * FROM ".$wpdb->posts." p, ".$wpdb->term_relationships." t_r WHERE p.ID = t_r.object_id AND term_taxonomy_id = ".$cat_pesquisa." AND post_status = 'publish' AND post_type = 'post' AND post_title LIKE '%".$termo_pesquisa."%' ORDER BY post_modified_gmt" );
 
foreach($pesquisa_query as $resultado)
{
echo '<div class="post">';
echo '<h2>'. $resultado->post_title . '</h2>';
echo '<p>'. $resultado->post_content . '</p>';
echo '</div>';
}
?>
<?php get_footer(); ?>
<?php get_header(); ?>
<h1>Resultados da pesquisa</h1>
<?php
$termo_pesquisa = trim($_GET['pesquisa']);
$cat_pesquisa = $_GET['cat'];

$pesquisa_query = $wpdb->get_results( "SELECT * FROM ".$wpdb->posts." p, ".$wpdb->term_relationships." t_r WHERE p.ID = t_r.object_id AND term_taxonomy_id = ".$cat_pesquisa." AND post_status = 'publish' AND post_type = 'post' AND post_title LIKE '%".$termo_pesquisa."%' ORDER BY post_modified_gmt" );

foreach($pesquisa_query as $resultado)
{
echo '<div class="post">';
echo '<h2>'. $resultado->post_title . '</h2>';
echo '<p>'. $resultado->post_content . '</p>';
echo '</div>';
}
?>
<?php get_footer(); ?>

Explicando: Nas linha 4 e 5 pego respectivamente os valores que foram digitados nos campos do formulário de pesquisa, depois uso a classe “wpdb” do WordPress para resgatar todos os valores das tabelas (wp_)posts e (wp_)term_relationships cujo valor da coluna ID da tabela posts seja igual ao object_id da tabela term_relationships e o term_taxonomy_id seja igual a categoria que foi escolhida no form de pesquisa e post_status seja igual a publicado e post_type = post, depois mando ele procurar na coluna post_title algum post que no titulo contenha o termo que foi digitado e por fim ordeno pela uma data de modificação. Depois da query do SQL uso um foreach simples para resgatar os valores.

Faça o download do tema exemplo

Com um pouco mais de criatividade e conhecimento de SQL dá para se fazer coisas bem mais complexas, por enquanto é isso, divirtam-se.

10 Fantásticos temas Premium para WordPress

Fiz uma lista de 10 temas premium do Theme Forest que além de belos apresentam funcionalidades fantásticas, são eles:

Panorama Fullscreen Photography WordPress Theme

Gaia Clean Business, Corporate and Portfolio

HYPAX – Premium WordPress Theme

Simpolio – Fullscreen Portfolio & Blog WP Theme

The Navigator: Premium WP Location Guide + Blog

WordPress Itis Theme

Exquisite WP – Multipurpose WordPress Theme

MediaReel – Portfolio WordPress Theme

PhotoGrid – One Page Ajax Photography WP Theme

Atlas For Photography Creative Portfolio

Correção do Módulo PagSeguro para WP-e-Commerce v3.2.4

Fiz uma correção no módulo do PagSeguro para WP-e-Commerce, a versão atual (3.2.4) é uma atualização para se adequar aos novos padrões do plugin que sofreu uma grande modificação na versão 3.8, porém muitas funcionalidades importantes não estavam funcionando, como o suporte a ferramenta de cupons de desconto e o que eu jugo o mais importante, o retorno automático de dados para gerir o controle de estoque do plugin.

Ddepois de estudar o banco de dados do plugin e aprender como funciona o sistema, percebi que o número de referência da compra não estava sendo “pego” de forma correta, sendo assim o resto do script que dependia desta referência não estavam funcionado corretamente, mas não é só isso, a rotina de consulta ao banco de dados para atualizar os dados do retorno automático estavam totalmente erradas, parecia que foram postas ali só para “encher linguiça”, além disso desenvolvi um script para dar suporte a ferramenta de cupom de desconto, onde o valor de desconto é distribuido no valor unitário de cada produtos, já que o PagSeguro ignora valores negativos na compra.

Testei exaustivamente tanto em localhost, quanto com valores reais e está funcionando muito bem, mas lembrando que o módulo ainda não está 100% funcional em relação as ferramentas que o plugin dispõe, então peço que se acharem algum bug e/ou façam alguma correção compartilhem nos comentários.

Eu enviei essa coreção ao pessoal da visie (que é responsável pelo desenvolvimento do módulo), mas como eu sei que tem muita gente atrás dessas correções resolvi disponibilizá-lo antes deles aprovarem as correções e disponibilizar no repositório oficial.

Para saber como instalar o módulo siga os passos neste link:  http://pagseguro.visie.com.br/plataforma/wordpress/wp-e-commerce/

UPDATE

A Mirela postou nos comentários o seguinte bug:

“…Na finalização de 2 ou mais produtos, ele está desconsiderando o desconto do cupom.

Por exemplo, eu adicionei um produto de R$10,00 e um de R$1,00. Apliquei no carrinho de compras um cupom de desconto de 50%. Assim o valor total com desconto ficou assim no carrinho: Preço Total: R$5,50

Ao finalizar a compra no pagseguro apareceram os 02 itens, porém cada um com o valor de R$5,50, totalizando R$11,00.”

A correção já foi feita, se tiverem outra sugestões postem nos cometários.

Faça o download abaixo:

correção PagSeguro WP-Ecommerce v3.2.4 (151)

Nivo Slider For WordPress 0.3.2

Nesta atualização foram adicionadas:

  • Opção para escolher onde será o carregamento de javascript, no head ou no footer, primordial que o seu tema tenhas as funcções wp_head e wp_footer
  • Opção para escolher a qualidade do recorte da imagem
  • JQuery noConflict no script do Nivo Slider
  • … E outros pequenos bugs corrigidos e atualizações.

Para mais informações osbre o plugin visite a página do plugin no repositório do WordPress.org ou aqui mesmo no blog.

Dúvidas, críticas e sugestões usem os comentários.