Snippet til WPCode Lite  (ERSTATTER den forrige)
Navn:      Metabeskrivelse for varer
Type:      PHP Snippet          <- skal vaere PHP, ikke HTML eller Universal
Placering: Run Everywhere
Status:    Active
HVORFOR EN NY VERSION
Den forrige byggede paa Yoasts variabel-registrering. Testet paa en live vare
svarede %%sitename%% korrekt "Buusvine", mens %%frifragt%% og %%bv_beskrivelse%%
begge kom tomme tilbage. Variablerne blev altsaa ikke registreret.
Denne version bruger filteret wpseo_metadesc i stedet. Den skriver
metabeskrivelsen direkte og er uafhaengig af baade variabler og skabelonen.
DU SKAL IKKE ÆNDRE YOAST-SKABELONEN.
Naar denne snippet er aktiv, bliver skabelonen for varer aldrig brugt.
SÅDAN VIRKER DEN
  Har varen sin egen metabeskrivelse   -> den bevares uroert (152 varer).
  Har varen en kort beskrivelse        -> den bruges, klippet ved 155 tegn.
  Har varen kun en lang beskrivelse    -> den bruges, klippet ved 155 tegn.
  Har varen ingen tekst                -> standardtekst med fri fragt-graensen,
                                          hentet fra fragtmetoden.
------------------------- KOPIÉR HERFRA -------------------------
add_filter( 'wpseo_metadesc', 'bv_metabeskrivelse', 20 );
function bv_metabeskrivelse( $beskrivelse ) {
if ( ! is_singular( 'product' ) ) {
return $beskrivelse;
}
$id = get_the_ID();
if ( ! $id ) {
return $beskrivelse;
}
$egen = trim( (string) get_post_meta( $id, '_yoast_wpseo_metadesc', true ) );
if ( '' !== $egen ) {
return $beskrivelse;
}
$post = get_post( $id );
if ( ! $post ) {
return $beskrivelse;
}
$tekst = bv_rens( $post->post_excerpt );
if ( '' === $tekst ) {
$tekst = bv_rens( $post->post_content );
}
if ( '' === $tekst ) {
return sprintf(
'Koeb %s hos Buus Vine. Fri fragt over %s kr, personlig raadgivning og 100 procent tilfredshedsgaranti.',
get_the_title( $id ),
bv_frifragt()
);
}
return bv_klip( $tekst, 155 );
}
function bv_rens( $raa ) {
$raa = strip_shortcodes( (string) $raa );
$raa = wp_strip_all_tags( $raa );
$raa = html_entity_decode( $raa, ENT_QUOTES, 'UTF-8' );
$raa = preg_replace( '/\s+/u', ' ', $raa );
return trim( $raa );
}
function bv_klip( $tekst, $maks ) {
if ( mb_strlen( $tekst ) <= $maks ) {
return $tekst;
}
$kort  = mb_substr( $tekst, 0, $maks );
$plads = mb_strrpos( $kort, ' ' );
if ( false !== $plads && $plads > 60 ) {
$kort = mb_substr( $kort, 0, $plads );
}
return rtrim( $kort, " ,.;:-" ) . '...';
}
function bv_frifragt() {
$cached = get_transient( 'bv_frifragt_beloeb' );
if ( false !== $cached && '' !== $cached ) {
return $cached;
}
if ( ! class_exists( 'WC_Shipping_Zones' ) ) {
return '699';
}
$laveste = 0;
foreach ( array( 2, 0 ) as $zone_id ) {
$zone = WC_Shipping_Zones::get_zone( $zone_id );
if ( ! $zone ) {
continue;
}
foreach ( $zone->get_shipping_methods( true ) as $metode ) {
$vaerdi = '';
if ( isset( $metode->instance_settings['free_shipping_total'] ) ) {
$vaerdi = $metode->instance_settings['free_shipping_total'];
} elseif ( isset( $metode->instance_settings['min_amount'] ) ) {
$vaerdi = $metode->instance_settings['min_amount'];
}
$vaerdi = (float) $vaerdi;
if ( $vaerdi > 0 && ( 0 === $laveste || $vaerdi < $laveste ) ) {
$laveste = $vaerdi;
}
}
}
$resultat = $laveste > 0 ? number_format_i18n( $laveste, 0 ) : '699';
set_transient( 'bv_frifragt_beloeb', $resultat, 12 * HOUR_IN_SECONDS );
return $resultat;
}
add_action( 'woocommerce_settings_saved', 'bv_ryd_cache' );
add_action( 'woocommerce_shipping_zone_method_added', 'bv_ryd_cache' );
add_action( 'woocommerce_shipping_zone_method_deleted', 'bv_ryd_cache' );
add_action( 'woocommerce_shipping_zone_method_status_toggled', 'bv_ryd_cache' );
function bv_ryd_cache() {
delete_transient( 'bv_frifragt_beloeb' );
}
------------------------- KOPIÉR HERTIL -------------------------
VIGTIGT INDEN DU GEMMER
Slet eller deaktiver den forrige snippet foerst. De deler funktionsnavnene
bv_rens, bv_klip og bv_ryd_cache, og to aktive kopier giver en PHP-fejl om at
funktionen ikke kan erklaeres to gange, hvilket kan tage hele sitet ned.
SÅDAN TESTES DET
Ryd cachen i Breeze og Super Page Cache, og sig til. Saa henter jeg
produktsiderne og laeser metabeskrivelsen direkte fra kilden.
Testvaren Amarone Smagekasse med 6 topamaroner skal skifte fra
"Koeb ... og faa gratis levering fra foerste flaske ..."
til varens egen tekst, der begynder "Seks topamaroner fra Valpolicella".
HVIS DEN FORRIGE SNIPPET SKAL FEJLFINDES ALLIGEVEL
Tjek i WPCode at den staar som PHP Snippet, at status er Active, og at
placeringen er Run Everywhere. Aabn derefter en vare, klik i Yoasts felt
Meta-beskrivelse og tryk paa knappen for at indsaette variabel. Staar
%%frifragt%% ikke paa listen under Avanceret, er den ikke registreret.
Modtag vinen
Bestil inden for følgende tidsramme:
Modtag . Bestil inden:
: :
Filter & sortering
Filtrer udvalg

Viser 11 resultaterSorteret efter seneste

Viser 11 resultaterSorteret efter seneste