Aqui onde trabalho, surgiu a ideia de criar um fórum de discussão,
como tive algumas dificuldades na instalação, vou documentar passo a passo, a instalação e configuração
1° passo
baixe o bbpress, eu preferi instalar no site bbpress.org
crie um subdiretório dentro do diretório onde o wordpress estiver instalado no meu caso criei /forum
acesse o endereço geralmente http://seusite.com.br/forum
aparecera uma tela semelhante a tela da primeira instalação do wordpress, pedindo pra você, inserir os dados de acesso do banco de dados, você tem que inserir as mesmas informações do wordpress, para a integração,
2° passo
aqui é onde vamos integrar os dados do wordpress + bbpress para que os dados enviados pelos cookies sejam os mesmos para que você possa logar simultaneamente nos dois sites, os valores abaixo podem ser pegos do seu arquivo wp-config.php que fica na raiz da instalação do wordpress
define('AUTH_KEY', ' valores do seu
wordpress');
define('SECURE_AUTH_KEY', '
valores do seu wordpress');
define('LOGGED_IN_KEY', '
valores do seu wordpress');
define('NONCE_KEY', '
valores do seu wordpress');
define('AUTH_SALT', '
valores do seu wordpress');
define('SECURE_AUTH_SALT', '
valores do seu wordpress');
define('LOGGED_IN_SALT', '
valores do seu wordpress');
define('NONCE_SALT', '
valores do seu wordpress');
3° passo
após copiar os valores, essa parte é mais simples, você deve preenccher o nome do forum, a url, e a chave mãe da conta do usuario que vai ficar como super-administrador.
4° passo
após instalado você pode baixar a tradução para portugues, acessando o link, faça o upload do arquivo pt_BR.mo para a pasta forum/my-languages, caso essa pasta nao exista você pode cria-la.
Após isso você deve alterar a linha
define('BB_LANG','');
do arquivo bb-config.php para
define('BB_LANG','pt_BR');
pronto?
no meu caso ainda não, porque embora eu consiga logar nos dois sites simultaneamente, quando eu logo no wordpress e vou para o forum, em seguida tento acessar a administração do fórum, encontrava um problema, pois invés de carregar a administração do fórum ele simplesmente retornava para a pagina inicial do fórum, não retornando nenhum erro somente nao carregando a pagina do painel do admin, pesquisei um bocado, e enfim encontrei uma solução, baixei esse plugin e instalei ele no wordpress, ativei e na configuração, simplesmente inseri a url do fórum, no campo requerido e salvei, e pronto agora sim os dois estavam com logins de usuários integrados, utilizando a mesma base de dados, ou seja, inserindo um novo usuário em um ou em outro estará simultaneamente nos dois sistemas, e conseguia acessar o admin do fórum sem problemas,
é isso ai, espero ter ajudado
até a proxima
quinta-feira, 31 de maio de 2012
quarta-feira, 9 de maio de 2012
Paginação wordpress PageNavi
Bem hoje precisei paginar minhas paginas do blog, assim como a de produtos da loja virtual, entao instalei o plugin WP-PageNavi, muito facil de usar e personalizar,
apos instalar você coloca a seguinte linha no local onde deseja que a paginação seja mostrada,
<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); }?>
no meu caso inseri no index.php de meu tema que é onde o blog esta, e pronto a paginação mostrada, então removi essas linhas que mostravam os links padrões para posts antigos,
<?php next_posts_link(__('« Older Entries', 'kubrick')) ?>
<?php previous_posts_link(__('Newer Entries »', 'kubrick')) ?>
e resolvi meu problema com paginação
abraço até a proxima
apos instalar você coloca a seguinte linha no local onde deseja que a paginação seja mostrada,
<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); }?>
no meu caso inseri no index.php de meu tema que é onde o blog esta, e pronto a paginação mostrada, então removi essas linhas que mostravam os links padrões para posts antigos,
<?php next_posts_link(__('« Older Entries', 'kubrick')) ?>
<?php previous_posts_link(__('Newer Entries »', 'kubrick')) ?>
e resolvi meu problema com paginação
abraço até a proxima
sexta-feira, 4 de maio de 2012
Exigir login em pagina com retorno automatico
Hoje precisei criar uma função que quando o usuário visitasse uma pagina que por algum motivo precisasse que esse mesmo usuário estivesse logado para ter acesso a esse conteúdo.
um redirect seria simples, verifico se o usuário esta logado, se não mando para a pagina de login, para isso temos varias funções, a wp_redirect() do wordpress, a header do php daria um jeito nisso, porem para que ficasse mais profissional, e que após o login o usuário fosse redirecionado ao logar, com essa função isso é possivel, ao chama-la em uma página automaticamente o usuário vai ser direcionado para a pagina de login ja com a instrução de retorno após o login enviada pela url, ela deve ser adicionada no arquivo functions de seu tema, o codigo esta todo comentado e qualquer duvida é só deixar um comentário
Aqui eu chamo a função, você pode colocar na pagina esse codigo e isso ja deve funcionar
um redirect seria simples, verifico se o usuário esta logado, se não mando para a pagina de login, para isso temos varias funções, a wp_redirect() do wordpress, a header do php daria um jeito nisso, porem para que ficasse mais profissional, e que após o login o usuário fosse redirecionado ao logar, com essa função isso é possivel, ao chama-la em uma página automaticamente o usuário vai ser direcionado para a pagina de login ja com a instrução de retorno após o login enviada pela url, ela deve ser adicionada no arquivo functions de seu tema, o codigo esta todo comentado e qualquer duvida é só deixar um comentário
function redireciona_login(){
$pagina_id = get_the_ID();
$urlFull = get_permalink();//aqui removo a ultima barra do link para usar no redirecionamento
$url = substr_replace($urlFull, '', -1);//a função urlencode trata o texto para o formato de link
$urlCompleto = 'http://site.com.br/wp-login.php?redirect_to=' . urlencode($url) . '&reauth=1';
echo "<script type=\"text/javascript\">window.location='$urlCompleto';</script>";
// echo $urlCompleto;
// header("location:$urlCompleto"); die();
// echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=$urlCompleto'>";
}
Aqui eu chamo a função, você pode colocar na pagina esse codigo e isso ja deve funcionar
if (!is_user_logged_in()){
redireciona_login ();
}
quinta-feira, 3 de maio de 2012
Função para BreadCrumbs Wordpress
Tive que modificar os Breadcrumbs, de um plugin wiki que instalei aqui em minha aplicação wordpress,
então pesquisei, e achei algumas funções e plugins de breadcrumbs, porem precisava de uma função que poderia ser chamada de uma pagina ou outra, e que mostrasse todas as paginas mães relacionadas ao post,
achei esta que mostra todo o caminho, até a home, você coloca dentro do arquivo functions do seu tema, e chama ela nas paginas onde for necessario
achei esta que mostra todo o caminho, até a home, você coloca dentro do arquivo functions do seu tema, e chama ela nas paginas onde for necessario
function wsf_make_link ( $url, $anchortext, $title=null, $nofollow=false ) {
if ( $title == null ) $title=$anchortext;
$nofollow==true ? $rel=' rel="nofollow"' : $rel = '';
$link = sprintf( '<a class="incsub_wiki_crumbs" href="%s" title="%s" %s="">%s</a>', $url, $title, $rel, $anchortext );
return $link;
}
function wsf_breadcrumbs( $sep = '/') {
global $post;
// Do not show breadcrumbs on home or front pages.
// So we will just return quickly
if((is_home() || is_front_page()) && (!$front_page))
return;
// Create a constant for the separator, with space padding.
$SEP = ' ' . $sep . ' ';
echo '
<div class="breadcrumbs">';
$wiki_home = "http://ema.net.br/emawiki/";
echo wsf_make_link( get_bloginfo('url'), 'Home', get_bloginfo('name'), true ) . $SEP;
if(is_single()) {
the_category(', '); echo $SEP;
}
elseif(is_page()) {
$parent_id = $post->post_parent;
$parents = array();
while($parent_id) {
$page = get_page($parent_id);
$parents[] = wsf_make_link( get_permalink($page->ID), get_the_title($page->ID) ) . $SEP;
$parent_id = $page->post_parent;
}
$parents = array_reverse($parents);
foreach($parents as $parent) {
echo $parent;
}
}
// Wordpess function that echoes your post title.
the_title();
echo '</div>
';
}
até a próxima.
quarta-feira, 11 de abril de 2012
Filtrar produtos por nivel de usuario
O wordpress trabalha com niveis de usuario, que vao de 0 a 10, sendo 0 leitor e 10 administrador
aqui você pode ver esses niveis, peguei do wordpress
aqui você pode ver esses niveis, peguei do wordpress
| Capability | Administrator | Editor | Author | Contributor | Subscriber |
|---|---|---|---|---|---|
| level_10 | |||||
| level_9 | |||||
| level_8 | |||||
| level_7 | |||||
| level_6 | |||||
| level_5 | |||||
| level_4 | |||||
| level_3 | |||||
| level_2 | |||||
| level_1 | |||||
| level_0 |
User Level to Role Conversion
- User Level 0 converts to Subscriber
- User Level 1 converts to Contributor
- User Level 2 converts to Author
- User Level 3 converts to Editor
- User Level 4 converts to Editor
- User Level 5 converts to Editor
- User Level 6 converts to Editor
- User Level 7 converts to Editor
- User Level 8 converts to Administrator
- User Level 9 converts to Administrator
- User Level 10 converts to Administrator
if (is_user_logged_in()){
$current_user = wp_get_current_user();
$user_id = $current_user->ID;
$user_info = get_userdata( $user_id);
$user_level = $user_info->user_level;
$username = $user_info->user_login;
$first_name = $user_info->first_name;
$last_name = $user_info->last_name;
}
para se mexer nesses niveis e criar novas capacidades dentro do blog utilizei o plugin
dentro do arquivo loop-products-cat.php na pasta woocommerce que é copiada para seu tema no momento da instalação, você pode colocar o seguinte codigo
<?php
global $woocommerce, $woocommerce_loop, $product_category_found;
$product_category_found = false;
?>
<?php
foreach ($product_categories as $category) :
if ($category->parent != $product_category_parent) continue;
$product_category_found = true;
$woocommerce_loop['loop']++;
//informações do usuario
if (is_user_logged_in()){
$current_user = wp_get_current_user();
$user_id = $current_user->ID;
$user_info = get_userdata( $user_id);
$user_level = $user_info->user_level;
$username = $user_info->user_login;
$first_name = $user_info->first_name;
$last_name = $user_info->last_name;
}
//vejo nivel de usuario e digo se ele pode ou nao ver alguma pagina
$restrito = '';
if($user_level < 3){
//aqui eu digo quais páginas usuários de nível menor que 3 não podem ver através do titulo da categoria
$restrito = array("Materiais de apoio","Impressos","Brindes","Presentes");
}
//se for diferente do array acima aparece caso seja menor que 3 o nível de usuário
if (!in_array($category->name, $restrito)){
?>
<li class="product sub-category <?php if ($woocommerce_loop['loop']%$woocommerce_loop['columns']==0) echo 'last'; if (($woocommerce_loop['loop']-1)%$woocommerce_loop['columns']==0) echo 'first'; ?>">
<?php do_action('woocommerce_before_subcategory', $category); ?>
<a href="<?php echo get_term_link($category->slug, 'product_cat'); ?>">
<?php do_action('woocommerce_before_subcategory_title', $category); ?>
<h3><?php echo $category->name; ?> <?php if ($category->count>0) : ?><mark class="count">(<?php echo $category->count; ?>)</mark><?php endif; ?></h3>
<?php do_action('woocommerce_after_subcategory_title', $category); ?>
</a>
<?php do_action('woocommerce_after_subcategory', $category); ?>
</li><?php
}
endforeach;
?>
dessa forma você coloca dentro do array quais categorias os usuarios que nao tem niveis de permissao podem ver, no meu caso utilizei pq temos franquias e somente elas podem ver algumas paginas e clientes nao.
essa foi mais uma necessidade que tive e essa foi a forma encontrada, pode ser que você encontre outra, se sim, avise para que possamos um ajudar o outro
até a proxima
Documentação php Extensão para Chrome e firefox
pode ser obtida no link
https://chrome.google.com/webstore/detail/kfiahljocaflpaiopilgpiochncgdnhd?hl=pt-br
um similiar para firefox pode ser obtido no link abaixo
https://addons.mozilla.org/pt-BR/firefox/addon/php-developer-toolbar/
segunda-feira, 2 de abril de 2012
Miniaturas woocommerce
Então, tive recentemente um problema com as miniaturas dos produtos no woocommerce, elas apareciam corretamente porém quanto geradas pelo WP ela apareciam alinhadas pela base, e como vendemos relatorios aqui precisava que o alinhamento fosse feito pelo topo pesquisei muito mas não encontrei algo que me ajudasse então modifiquei a função do woocommerce da seguinte forma.
Dentro do arquivo functions de seu tema coloque o seguinte codigo
function woocommerce_get_product_thumbnail( $size = 'shop_catalog', $placeholder_width = 0, $placeholder_height = 0 ) {
global $post, $woocommerce;
if (!$placeholder_width) $placeholder_width = $woocommerce->get_image_size('shop_catalog_image_width');
if (!$placeholder_height) $placeholder_height = $woocommerce->get_image_size('shop_catalog_image_height');
// if ( has_post_thumbnail() ) return get_the_post_thumbnail($post->ID, $size);
if ( has_post_thumbnail() ) return the_post_thumbnail(thumbnail);
else return '<img src="'.$woocommerce->plugin_url(). '/assets/images/placeholder.png" alt="Placeholder" width="'.$placeholder_width.'" height="'.$placeholder_height.'" />';
}
notem que tem uma linha comentada
// if ( has_post_thumbnail() ) return get_the_post_thumbnail($post->ID, $size);
foi aqui que mudei para
if ( has_post_thumbnail() ) return the_post_thumbnail(thumbnail);
e assim as miniaturas se alinham a partir do topo, criando a função dentro de seu tema ela sobrepõe a função que esta no woocommerce-template.php na pasta do plugin woocommerce
espero ter ajudado alguem que tenha o mesmo problema,
até outro problema que consiga encontrar solução
Dentro do arquivo functions de seu tema coloque o seguinte codigo
function woocommerce_get_product_thumbnail( $size = 'shop_catalog', $placeholder_width = 0, $placeholder_height = 0 ) {
global $post, $woocommerce;
if (!$placeholder_width) $placeholder_width = $woocommerce->get_image_size('shop_catalog_image_width');
if (!$placeholder_height) $placeholder_height = $woocommerce->get_image_size('shop_catalog_image_height');
// if ( has_post_thumbnail() ) return get_the_post_thumbnail($post->ID, $size);
if ( has_post_thumbnail() ) return the_post_thumbnail(thumbnail);
else return '<img src="'.$woocommerce->plugin_url(). '/assets/images/placeholder.png" alt="Placeholder" width="'.$placeholder_width.'" height="'.$placeholder_height.'" />';
}
notem que tem uma linha comentada
// if ( has_post_thumbnail() ) return get_the_post_thumbnail($post->ID, $size);
foi aqui que mudei para
if ( has_post_thumbnail() ) return the_post_thumbnail(thumbnail);
e assim as miniaturas se alinham a partir do topo, criando a função dentro de seu tema ela sobrepõe a função que esta no woocommerce-template.php na pasta do plugin woocommerce
espero ter ajudado alguem que tenha o mesmo problema,
até outro problema que consiga encontrar solução
Marcadores:
products page,
thumbnail,
web store,
woocommerce,
wordpress
terça-feira, 27 de março de 2012
Remover acentos com php
Procurei muito por uma função que funcionasse bem, copiei e testei varias e no fim acabei criando uma bem simples que funciona muito bem segue abaixo
<?php
function remover($str){
$remover = array(
"À" => "A",
"Á" => "A",
"Ã" => "A",
"Â" => "A",
"É" => "E",
"Ê" => "E",
"Í" => "I",
"Ó" => "O",
"Õ" => "O",
"Ô" => "O",
"Ù" => "U",
"Ú" => "U",
"Ü" => "U",
"à" => "a",
"á" => "a",
"ã" => "a",
"â" => "a",
"é" => "e",
"ê" => "e",
"ì" => "i",
"í" => "i",
"ó" => "o",
"õ" => "o",
"ô" => "o",
"ú" => "u",
"ü" => "u",
"ç" => "c"
);
return strtr($str, $remover);
}
?>
para utilizar é muito simples
<?php
echo remover($VariavelComAcento);
?>
<?php
function remover($str){
$remover = array(
"À" => "A",
"Á" => "A",
"Ã" => "A",
"Â" => "A",
"É" => "E",
"Ê" => "E",
"Í" => "I",
"Ó" => "O",
"Õ" => "O",
"Ô" => "O",
"Ù" => "U",
"Ú" => "U",
"Ü" => "U",
"à" => "a",
"á" => "a",
"ã" => "a",
"â" => "a",
"é" => "e",
"ê" => "e",
"ì" => "i",
"í" => "i",
"ó" => "o",
"õ" => "o",
"ô" => "o",
"ú" => "u",
"ü" => "u",
"ç" => "c"
);
return strtr($str, $remover);
}
?>
para utilizar é muito simples
<?php
echo remover($VariavelComAcento);
?>
quinta-feira, 15 de março de 2012
Pagina de login personalizada
Aqui eu monto através de uma tabela, um formulário de login facilmente personalizável, com conhecimentos básicos de HTML e CSS, para uma página de login personalizado.
<table border="0" style="margin:0 auto; width:550px">
<form name="loginform" id="loginform" action="<?php echo esc_url( wp_login_url( $_SERVER['REQUEST_URI'] ) ); ?>" method="post">
<tr>
<td colspan="3" align="center">
<h4>Você não possui autorização para ver essa página</h4> para acessar faça o login abaixo<br />
</td>
</tr>
</tr>
<tr>
<td>
Nome:
</td>
<td colspan="2">
<input type="text" name="log" id="user_login" value="<?php echo attribute_escape(stripslashes($user_login)); ?>" size="20" tabindex="10" placeholder="Digite aqui seu nome"/>
</td>
</tr>
<tr>
<td >
Senha:
</td>
<td colspan="2" >
<input type="password" name="pwd" id="user_pass" value="" size="20" tabindex="20" placeholder="Digite aqui sua senha" /><?php do_action('login_form'); ?></div>
</td>
</td>
<tr>
<td>
</td>
<td>
<a href="<?php echo wp_lostpassword_url( get_bloginfo('url') ); ?>" title="Lost Password">Esqueceu sua senha?</a>
<?php /* | <a href="<?php bloginfo('url'); ?>/wp-login.php?action=register">Registrar-se</a>*/ ?>
</td>
<td>
<input name="rememberme" type="hidden" id="rememberme" value="forever" tabindex="90" />
<input type="submit" name="wp-submit" id="wp-submit" value="<?php _e('Login'); ?>" tabindex="100" />
</form>
</td>
</tr>
</table>
<table border="0" style="margin:0 auto; width:550px">
<form name="loginform" id="loginform" action="<?php echo esc_url( wp_login_url( $_SERVER['REQUEST_URI'] ) ); ?>" method="post">
<tr>
<td colspan="3" align="center">
<h4>Você não possui autorização para ver essa página</h4> para acessar faça o login abaixo<br />
</td>
</tr>
</tr>
<tr>
<td>
Nome:
</td>
<td colspan="2">
<input type="text" name="log" id="user_login" value="<?php echo attribute_escape(stripslashes($user_login)); ?>" size="20" tabindex="10" placeholder="Digite aqui seu nome"/>
</td>
</tr>
<tr>
<td >
Senha:
</td>
<td colspan="2" >
<input type="password" name="pwd" id="user_pass" value="" size="20" tabindex="20" placeholder="Digite aqui sua senha" /><?php do_action('login_form'); ?></div>
</td>
</td>
<tr>
<td>
</td>
<td>
<a href="<?php echo wp_lostpassword_url( get_bloginfo('url') ); ?>" title="Lost Password">Esqueceu sua senha?</a>
<?php /* | <a href="<?php bloginfo('url'); ?>/wp-login.php?action=register">Registrar-se</a>*/ ?>
</td>
<td>
<input name="rememberme" type="hidden" id="rememberme" value="forever" tabindex="90" />
<input type="submit" name="wp-submit" id="wp-submit" value="<?php _e('Login'); ?>" tabindex="100" />
</form>
</td>
</tr>
</table>
Mostrando dados do usuário
colocando os dados que estão abaixo dentro de uma pagina no template
podemos mostrar o gravatar, e dar a opção ao usuário de entrar na pagina minha conta
<div>
<!-- Avatar -->
<div><?php echo get_avatar($user_ID, 90); ?></div>
<h4>Usuario</h4>
<!-- Saudação boas vindas-->
<div><strong><?php global $current_user;
get_currentuserinfo();
echo 'Ola ' . $current_user->user_login . "\n";
?>,</strong></div>
<!-- Ingresar a su perfil -->
<div><img src="<?php bloginfo( 'template_url' );?>/images/login/my_account.png"><a href="<?php bloginfo('url');?>/wp-admin/profile.php">Minha conta</a></div>
<!-- Cerrar Sesión -->
<div><img src="<?php bloginfo( 'template_url' );?>/images/login/logout.png"><a href="<?php echo esc_url( wp_logout_url( $_SERVER['REQUEST_URI'] ) ); ?>" title="logout">sair</a></div>
</div>
caso queira pegar mais dados aqui tem mais outro código, que confere se o usuário esta logado, e em cima desses dados mostra, id do usuário, informação, nível dentro de parâmetros de administração, nome de usuário, nome e sobrenome, é bastante útil para utilizar como filtro em paginas que você queira que somente usuários com certos níveis de acesso, possam acessar o conteúdo
if (is_user_logged_in()){
$current_user = wp_get_current_user();
$user_id = $current_user->ID;
$user_info = get_userdata( $user_id);
$user_level = $user_info->user_level;
$username = $user_info->user_login;
$first_name = $user_info->first_name;
$last_name = $user_info->last_name;
}
quinta-feira, 16 de fevereiro de 2012
WP E-commerce vs Woocommerce
Passei uma semana num dilema, qual o melhor maneira para criar uma loja virtual vinculada ao Wordpress, existem inúmeras plataformas openSource, dentre as mais usadas a Prestashop e a Magento, se seu objetivo é montar um portal de compras on-line recomendo qualquer uma dessas duas plataformas, pois as duas tem bastante material e tutoriais pela web.
Porem precisava de uma plataforma que pudesse ser facilmente integrada com o WP, então descartei, essas plataformas e comecei a pesquisar quanto a plugins para WP, o primeiro que encontrei foi o WP E-commerce, a principio pareceu uma ótima opção, tendo vários complementos, e plugins extras para melhorar o funcionamento da loja, então instalei a loja que automaticamente se ajustou ao meu tema, e ai que começou minha semana de merda, como uso url amigáveis para poder otimizar meu SEO, a loja simplesmente não funcionava, antes de colocar ela em meu site, fiz inúmeros testes locais, porem minha instalação do xampp não esta funcionando com url amigável, e localmente a loja funcionou perfeitamente, mas quando coloquei ela no ar, parou, pesquisei muito, e acabei encontrando algumas pessoas com o mesmo problema, entrei no fórum do plugin e encontrei mais alguns tópicos relatando o mesmo problema, na minha opinião tudo bem ter problemas, novas versões servem pra isso, resolver problemas das anteriores, porem quando temos varias pessoas com o mesmo problema, e nenhuma resposta em relação a eles, fica meio difícil ter confiança, até mesmo quando você encontra tópicos de pessoas que adquiriram plugins premium que são pagos, tendo problemas sem solução nem posição dos desenvolvedores, então tentei resolver e debugar o tema até que encontrei que o erro estava no ajax do carro de compra, direcionei a busca em cima desse problema, e encontrei mais pessoas que chegaram ao mesmo lugar que eu, também sem solução, então larguei de mão esse plugin, e fui atras de outros, até que encontrei o woocommerce.
pra quem não conhece a Woo themes faz inúmeros temas e plugins para o WP, sei porque já utilizei um deles em um site que desenvolvi.
Então instalei o woocommerce, e botei pra funcionar e funcionou perfeitamente, criei minha loja, cadastrei produtos, efeituei uma compra teste, foi encaminhado um e-mail tudo corretamente, fácil personalização através de CSS. e todo o controle é simples, através de alguns poucos menus, você se encontra pois é tudo intuitivo.
Em minha woocommerce é muito melhor que o wp e-commerce, claro que esta é somente minha opinião, espero ter esclarecido alguma dúvida ou ter ajudado em sua escolha.
Porem precisava de uma plataforma que pudesse ser facilmente integrada com o WP, então descartei, essas plataformas e comecei a pesquisar quanto a plugins para WP, o primeiro que encontrei foi o WP E-commerce, a principio pareceu uma ótima opção, tendo vários complementos, e plugins extras para melhorar o funcionamento da loja, então instalei a loja que automaticamente se ajustou ao meu tema, e ai que começou minha semana de merda, como uso url amigáveis para poder otimizar meu SEO, a loja simplesmente não funcionava, antes de colocar ela em meu site, fiz inúmeros testes locais, porem minha instalação do xampp não esta funcionando com url amigável, e localmente a loja funcionou perfeitamente, mas quando coloquei ela no ar, parou, pesquisei muito, e acabei encontrando algumas pessoas com o mesmo problema, entrei no fórum do plugin e encontrei mais alguns tópicos relatando o mesmo problema, na minha opinião tudo bem ter problemas, novas versões servem pra isso, resolver problemas das anteriores, porem quando temos varias pessoas com o mesmo problema, e nenhuma resposta em relação a eles, fica meio difícil ter confiança, até mesmo quando você encontra tópicos de pessoas que adquiriram plugins premium que são pagos, tendo problemas sem solução nem posição dos desenvolvedores, então tentei resolver e debugar o tema até que encontrei que o erro estava no ajax do carro de compra, direcionei a busca em cima desse problema, e encontrei mais pessoas que chegaram ao mesmo lugar que eu, também sem solução, então larguei de mão esse plugin, e fui atras de outros, até que encontrei o woocommerce.
pra quem não conhece a Woo themes faz inúmeros temas e plugins para o WP, sei porque já utilizei um deles em um site que desenvolvi.
Então instalei o woocommerce, e botei pra funcionar e funcionou perfeitamente, criei minha loja, cadastrei produtos, efeituei uma compra teste, foi encaminhado um e-mail tudo corretamente, fácil personalização através de CSS. e todo o controle é simples, através de alguns poucos menus, você se encontra pois é tudo intuitivo.
Em minha woocommerce é muito melhor que o wp e-commerce, claro que esta é somente minha opinião, espero ter esclarecido alguma dúvida ou ter ajudado em sua escolha.
Marcadores:
customização,
plugins,
web store,
woocommerce,
wordpress,
wp e-commerce
wp-admin-bar personalizada (custom wp-admin-bar)
Bom hoje vou mostrar como personalizei minha wp-admin-bar, fiz algumas alterações para alcançar minha necessidade:
- adicionar novos links
- manter a barra sempre visível
- restringir acessos a alguns links ja que a barra esta sempre visível
- trocar a logo do Wp da barra por uma de minha escolha
- alterar CSS
então o codigo ficou da seguinte forma
Primeiro removo os links padroes da wp admin bar
// Remove o link antigo da Admin Bar WP 3.3
function fb_remove_oldlogo_adminbar() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('wp-logo');
$wp_admin_bar->remove_menu('new-content');
$wp_admin_bar->remove_menu('comments');
$wp_admin_bar->remove_menu('updates');
$wp_admin_bar->remove_menu('site-name');
$wp_admin_bar->remove_menu('edit');
}
Aqui eu coloco os links personalizados
function menuTopo() {
global $wp_admin_bar;
$wp_admin_bar->add_menu( array(
'id' => 'Home-link',
'title' => ' Titulo do link',
'href' => $blog_link
) );
$wp_admin_bar->add_menu( array(
'parent'=> 'Home-link',
'id' => 'admin-link',
'title' => 'Administração',
'href' => ' http://seusite.com.br/wp-admin',
'meta' => array( 'class'=>'novo-link', 'title'=>'Ir administração' )
) );
//o atributo parent é para colocar o menu como subitem na lista criando um menu dropDown
//esse atributo tem que ser viculado ao id do menu pai
$wp_admin_bar->add_menu( array(
'id' => 'Loja-link',
'title' => 'Loja',
'href' => 'http:// seusite.com.br/loja',
'meta' => array( 'class'=>'novo-link', 'title'=>'Ema Store' )
) );
$wp_admin_bar->add_menu( array(
'id' => 'Forum-link',
'title' => 'Forum',
'href' => 'http://seusite.com.br/foruns/',
'meta' => array( 'class'=>'novo-link', 'title'=>'Forum' )
) );
}
}
Agora para colocar a minha logo no lugar da logo do Wordpress na wp-admin-bar
crio um classe css, no caso utilizei a logo em png com fundo transparente
#wp-admin-bar-Home-link{
background: url("http://seusite.com.br/images/imagem.png") no-repeat scroll 5px -1px transparent !important;
padding: 0 0 0 21px !important;
width: 50px !important;
}
Primeiro removo os links padroes da wp admin bar
// Remove o link antigo da Admin Bar WP 3.3
function fb_remove_oldlogo_adminbar() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('wp-logo');
$wp_admin_bar->remove_menu('new-content');
$wp_admin_bar->remove_menu('comments');
$wp_admin_bar->remove_menu('updates');
$wp_admin_bar->remove_menu('site-name');
$wp_admin_bar->remove_menu('edit');
}
Aqui eu coloco os links personalizados
function menuTopo() {
global $wp_admin_bar;
$wp_admin_bar->add_menu( array(
'id' => 'Home-link',
'title' => ' Titulo do link',
'href' => $blog_link
) );
$wp_admin_bar->add_menu( array(
'parent'=> 'Home-link',
'id' => 'admin-link',
'title' => 'Administração',
'href' => ' http://seusite.com.br/wp-admin',
'meta' => array( 'class'=>'novo-link', 'title'=>'Ir administração' )
) );
//o atributo parent é para colocar o menu como subitem na lista criando um menu dropDown
//esse atributo tem que ser viculado ao id do menu pai
$wp_admin_bar->add_menu( array(
'id' => 'Loja-link',
'title' => 'Loja',
'href' => 'http:// seusite.com.br/loja',
'meta' => array( 'class'=>'novo-link', 'title'=>'Ema Store' )
) );
$wp_admin_bar->add_menu( array(
'id' => 'Forum-link',
'title' => 'Forum',
'href' => 'http://seusite.com.br/foruns/',
'meta' => array( 'class'=>'novo-link', 'title'=>'Forum' )
) );
}
}
Agora para colocar a minha logo no lugar da logo do Wordpress na wp-admin-bar
crio um classe css, no caso utilizei a logo em png com fundo transparente
#wp-admin-bar-Home-link{
background: url("http://seusite.com.br/images/imagem.png") no-repeat scroll 5px -1px transparent !important;
padding: 0 0 0 21px !important;
width: 50px !important;
}
Marcadores:
custom wp-admin-bar,
customização,
wordpress,
wp-admin_bar
segunda-feira, 16 de janeiro de 2012
admin_bar personalizada
Aqui segue um pequeno tutorial de personalização a wp_admin_bar disponivel a partir da versao 3.1 do wordpress
adicione esse codigo no final do arquivo functions.php de seu tema e modifique conforme sua necessidade
function meu_menu(){
global $wp_admin_bar;
//aqui crio o primeiro menu
//coloco dentro de um array id, title, href, meta
//id fica como referencia do link no caso de ter outros sublinks
//title é o nome do link
//href o endereço para onde o link aponta
//meta tem o atributo title do link que da um hint ao passar o mouse
$wp_admin_bar-add_menu( array(
'id' => 'twitter-link',
'title' => 'Twitter',
'href' => 'http://www.twitter.com/maluco456',
'meta' => array( 'class'='novo-link', 'title'='Twitter do alexndre' )
) );
//aqui crio um sublink em relação ao twitter
$wp_admin_bar-add_menu( array(
'parent' => 'twitter-link'
'id' => 'twitter-link',
'title' => 'Twitter',
'href' => 'http://www.twitter.com/maluco456',
'meta' => array( 'class'='novo-link', 'title'='Twitter do alexndre' )
) );
//aqui crio um segundo link
$wp_admin_bar-add_menu( array(
'id' => 'atalho-editor',
'title' => 'Editor',
'href' => 'http://duvidaswordpress.blogspot.com',
'parent' => 'appearance'
) );
$wp_admin_bar-add_menu( array(
'id' => 'atalho-editor',
'title' => '<img src="endereço/img/imagem.jpg" alt="texto alternativo da imagem"',
'href' => 'http://duvidaswordpress.blogspot.com'
) );
}
add_action( 'admin_bar_menu', 'meu_menu', 90 );
integração de login moodle e wordpress
Neste post mostro como consegui logar simultaneamente no moodle e no wordpress.
as base de dados não estão interligadas, ainda nao consegui chegar nessa parte, os usuarios tem que estar presente nas duas databases, com login e senhas iguais.
é meio amador mas da pra quebrar o galho ate conseguir interligar os dois de uma maneira melhor...
segue codigo php abaixo
<?php
//acessando a Base de dados pelo wp-config
include_once("../wp-config.php");
/*
includes para classes da validação no wordpress com o class-phpass.php
*/
include_once("../wp-includes/class-phpass.php");
include_once("../wp-includes/pluggable.php");
if(!$_POST)
{
//crio o formulario
?>
<form method="post" action="" name="login">
<div id='content_login'>
<h1>Login</h1>
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username" value="" /></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password" value="" /></td>
</tr>
<tr>
<td><input type="submit" name="login" value="Login" /></td>
</tr>
</table>
</div>
</form>
<?php
}
else {
//recebo as variaveis do formulario pelo metodo post ao clicar em login
$username = mysql_escape_string($_POST['username']);
$password = mysql_escape_string($_POST['password']);
// seleciono os dados da tabela de usuarios no meu caso é wp-users, mas dependendo da instalação isso pode mudar
// esse é o motivo de usar a variavel $table_prefix que vem do wp-config
$query = mysql_query("SELECT * FROM ".$table_prefix."users WHERE user_login = '$username'");
//executo a query
$row = mysql_fetch_array($query);
//crio o novo objeto $wp_hasher
$wp_hasher = new PasswordHash(8, TRUE);
//puxo os dados da tabela com a codificaçao propria do wordpress
$password_hashed = $row['user_pass'];
//puxo o id do usuario
$user_id = $row['ID'];
/*
abaixo vou checar se o password é igual em md5 ou na classe PasswordHash
*/
if($wp_hasher->CheckPassword($password, $password_hashed)
|| $password_hashed == md5($password)) {
//se der tudo certo nas verificações acima inicio a sessao colocando o logged_in
$_SESSION["logged_in"] = true;
//gravo os cookies de autenticaçao
wp_set_auth_cookie( $user_id, $remember = true, $secure ='' );
//mensagem dizendo que deu tudo certo
echo 'Login ok';
//daqui para baixo ainda ta em teste para logar simultaneo no moodle.
//te me dando alguns problemas pra integrar esses dois....
?>
<html>
<head>
<script type="text/javascript">
//função de envio de formulario com JS
//com direcionamento apos o envio da função
function submitform()
{
document.forms["moodle"].submit();
//aqui vc coloca a url do seu site
location.href="http://site.com.br";
}
</script>
</head>
<!-- aqui na tagbody eu digo que quando a pagina carregar ela vai rodar a função js de envio dos dados do formulario -->
<body onload="submitform();">
<!-- vc tem que localizar onde esta a pasta login dentro do diretorio onde o moodle esta instalado -->
<form name="moodle" action="../uni/login/index.php" method="post">
<input type="hidden" name="username" value="<?php echo $username; ?>"/>
<input type="hidden" name="password" value="<?php echo $password; ?>"/>
</form>
</body>
</html>
<?php
//caso de tudo certo daqui para baixo nao aparece, caso contrario o formulario aparece novamentte para uma nova tentativa de login
}
else {
?>
<form method="post" action="">
<div id='content_login'>
<h1 class='red'>Dados do usuario/password incorretos</h1>
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username" value="" /></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password" value="" /></td>
</tr>
<tr>
<td><input type="submit" name="login" value="Login" /></td>
</tr>
</table>
</div>
</form>
<?php
}
}
?>
Assinar:
Postagens (Atom)

