Questo blog nasce con l’intenzione di raccogliere e condividere la mia esperienza attraverso brevi articoli tecnici che possano offrire supporto agli appassionati di wordpress come me.

Usare WP-CLI con XAMPP (Unix Like)

Per far funzionare WP-CLI con una installazione XAMPP su Unix-like bisogna dire al sistema di non usare php e mysql di sistema ma usare quelli XAMPP. Per fare questo modifichiamo il file .bash_profile che sta nella home di ogni User e inserieamo queste poche righe.

# Use XAMPP version of PHP
export PATH="/Applications/XAMPP/xamppfiles/bin":$PATH;

# Export XAMPP MySQL executables as functions
# Makes them usable from within shell scripts (unlike an alias)
mysql() {
    /Applications/XAMPP/xamppfiles/bin/mysql "$@"
}

mysqladmin() {
    /Applications/XAMPP/xamppfiles/bin/mysqladmin "$@"
}

export -f mysql
export -f mysqladmin

Per applicare le modifiche usare il comando source ~/.bash_profile

Questo trick funziona anche con MAMP ovviamente dovete cambiare i percorsi e usare quelli di MAMP.

Guide e Link utili:

Installare è Amministrare WordPress da Riga di Comando con WP-CLI
http://wptheming.com/2015/02/wp-cli/

Iniziare ad usare WP-CLI
https://trepmal.com/2014/02/22/getting-started-with-wp-cli/

Sito ufficiale WP-CLI
https://wp-cli.org/

Rimuovere voci menu dal pannello di controllo di WordPress

Con questa funzione è possibile rimuovere voci menu dal pannello di controllo di wordpress per tutti gli utenti con ruolo “Author”.

function guga_remove_menu_items() {
    if( current_user_can( 'author' )  ): //definisce il ruolo per applicare le voci da rimuovere
        remove_menu_page( 'edit.php?post_type=post-type-slug-1' );
        remove_menu_page( 'edit.php?post_type=post-type-slug-2' );
        remove_menu_page( 'wpcf7' ); //rimuove voce menu contact form 7
        remove_menu_page( 'jetpack' ); //rimuove voce menu jetpack
        remove_menu_page( 'tools.php' ); //rimuove voce menu strumenti
    endif;
}
add_action( 'admin_menu', 'guga_remove_menu_items' );

per maggiori info e riferimenti visita la pagina remove_menu_page

Come si fa a mostrare i prezzi dopo aver fatto Login su Woocommerce?

Incollando questo codice sul file functions.php, il vostro tema non mostrerà più i prezzi dei prodotti invitando i visitatori a loggarsi o registrarsi per poterli vedere. Questa soluzione elimina anche il pulsante aggiungi al carrello.

function woocommerce_show_price_logged($price){
    if(is_user_logged_in() ){
        return $price;
    } else {
        add_action( 'woocommerce_single_product_summary', 'woocommerce_login_to_see_price', 31 );
        add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_login_to_see_price', 11 );
        remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
        remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
    }
}

add_filter('woocommerce_get_price_html', 'woocommerce_show_price_logged');
 
function woocommerce_login_to_see_price() {
        echo 'Registrati per vedere i prezzi';
}

Rimuovere il pulsante acquista dalle liste di prodotti su woocommerce

Condivido una funzione php da usare su wordpress che può essere molto utile per chi vuole rimuovere il pulsante “Acquista” da tutte liste di prodotti di woocommerce. La funzione viene usata in combinazione con la action hook “woocommerce_template_loop_add_to_cart” qui descritta e va incollata nel file functions.php perchè funzioni.


function woocommerce_remove_loop_button() {
    remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10);

}
add_action('init', 'woocommerce_remove_loop_button');

Controllare se Woocommerce è attivo o no

Qui una piccola funzione molto utile presa dal tema Storefront per controllare se il plugin di Woocommerce è attivo o no.

if ( ! function_exists( 'is_woocommerce_activated' ) ) {
	function is_woocommerce_activated() {
		return class_exists( 'woocommerce' ) ? true : false;
	}
}

come usarla

if ( is_woocommerce_activated() ) {
    echo 'woocomemrce plugin is active :)';	
} else {
    echo 'woocommerce plugin is not active :(';
}

Forzare l’utilizzo https per tutto il sito con PHP Seo friendly 301

Può capitare di non poter modificare il file .htaccess oppure che le regole mod_rewrite per qualche strano motivo non funzionino, allora non rimane che usare PHP per forzare l’uso del HTTPS su tutto il sito.

Con questo piccolo controllo siamo in grado di forzare l’uso del protocollo HTTPS su tutto il sito. Questo codice funziona su tutte le piattaforme che usano PHP come linguaggio di sviluppo.

Per farlo funzionare su WordPress inserite il codice in cima al file header.php del vostro tema. Se usate un tema base come TwentyFifteen allora vi consiglio di crearvi un Tema Figlio per evitare di perdere le modifiche dopo un aggiornamento automatico.

 

<?php   
if (! isset($_SERVER['HTTPS']) or $_SERVER['HTTPS'] == 'off' ) {
    $redirect_url = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    header("Location: $redirect_url", TRUE, 301);
    exit();
}
?>

oppure più semplicemente

<?php 

if(empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] !== "on")
{
    header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"], TRUE, 301);
    exit();
}
?>