Autor Zpráva
vodys
Profil
Zdravím.
Lámu si hlavu s jednou naprostou blbostí.

Potřebuji jinde na stránce vyvolat text, který je uvedený ve spanu.

U každého produktu se mi zobrazuje cena např: 525 Kč /m2 vč.DPH ... Ve spanu mám uvedeno: <span class="awspn_price_note">&nbsp; /m2</span>.

Potřebuju však toto jakoby duplikovat ještě jinde na stránce - bohužel vzhledem k tomu, že je to wordpress, nedaří se mi tu funkci vyvolat napříč pluginy.. Proto hledám něco jednoduché, co bude pouze daný span zrcadlit.

Jinak přikládám funkcionalitu php souboru zajišťující zobrazení správné jednotky za cenou

    if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly
}


/**
 * Woo Set Price Note
 *
 * Allows user to get WooCommerce Set Price Note.
 *
 * @class   Woo_Set_Price_Note_Frontend 
 */


class Woo_Set_Price_Note_Frontend {



    /**
     * Init and hook in the integration.
     *
     * @return void
     */


    public function __construct() {
        $this->id                 = 'Woo_Set_Price_Note_Frontend';
        $this->method_title       = __( 'WooCommerce Set Price Note', 'woo-set-price-note' );
        $this->method_description = __( 'WooCommerce Set Price Note', 'woo-set-price-note' );    
    
        
        // Filters
        // Add saved price note
        add_filter( 'woocommerce_get_price_html', array( $this, 'awspn_display_price_note'), 99, 2 );
        
        // Display price note on cart page
        add_filter( 'woocommerce_cart_item_price', array( $this, 'awspn_display_cart_price_note'), 10, 2 );
        

        // Display price note on checkout page
        add_filter( 'woocommerce_cart_item_name', array( $this, 'awspn_display_checkout_price_note'), 10, 2 );

        // Add price note to the cart item meta
        add_filter( 'woocommerce_add_cart_item_data', array( $this, 'awspn_add_price_note_to_cart_item'), 10, 3 );

        // Add price note to the order item meta
        add_action( 'woocommerce_add_order_item_meta', array( $this, 'awspn_add_price_note_to_order_item_meta'), 10, 3 );


        // Add item meta from cart to order
        if ( version_compare( get_option( 'woocommerce_version', null ), '3.0.0', '<' ) ) {
            add_action( 'woocommerce_add_order_item_meta', array( $this, 'awspn_add_price_note_to_order_item_meta' ),    10, 3 );
        } else {
            add_action( 'woocommerce_checkout_create_order_line_item', array( $this, 'awspn_save_values_in_item' ), 10, 4 );
            add_action( 'woocommerce_new_order_item', array( $this, 'awspn_add_price_note_to_order_item_meta_wc3' ), 10, 3 );
        }

        // Load small styling
        add_action('wp_footer', array( $this, 'awspn_print_price_note_style'));
        
    }


    /**
     * Loading  price note options on WooCommerce product section.
     *
     * @return string
     */


    public function awspn_display_price_note( $price, $product ){
        //woocommerce 3.0 compatible
        if(method_exists($product, 'get_id')){
            $product_id = $product->get_id();            
        }else{
            $product_id = $product->id;
        }
         return $this->awspn_format_price_note($product_id, $price);
    }

    public function awspn_display_cart_price_note( $price, $cart_item ){
        //print_pre($cart_item['price-note-text']);
        $product_id = $cart_item['product_id'];
        return $this->awspn_format_price_note($product_id, $price);
            
    }

    public function awspn_format_price_note($product_id, $price){
            
            $price_note_text = esc_attr( get_post_meta( $product_id, 'awspn_product_price_note', true ) ); 
            $price_note_separator = esc_attr( get_post_meta( $product_id, 'awspn_product_price_note_separator', true ) );             
           
           if( !empty( $price_note_text ) && isset( $price_note_text ) ){
                
                if( !empty( $price_note_separator ) && isset( $price_note_separator ) ){                        
                    return $price .'<span class="awspn_price_note" >&nbsp;'. $price_note_separator .'&nbsp;'. $price_note_text .'</span>';
                } else {
                    return $price .'<span class="awspn_price_note" >&nbsp; /&nbsp;'. $price_note_text .'</span> vč. DPH';
                }

            } else {                
                return $price;
            }
        }
nethor
Profil
Tak si na to uprav funkci awspn_format_price_note($product_id, $price), nějak takhle (netestováno) :
public function FromSpan($product_id){      
    $price_note_text = esc_attr( get_post_meta( $product_id, 'awspn_product_price_note', true ) ); 
    $price_note_separator = esc_attr( get_post_meta( $product_id, 'awspn_product_price_note_separator', true ) );             
    if( !empty( $price_note_text ) && isset( $price_note_text ) ){                     
        if( !empty( $price_note_separator ) && isset( $price_note_separator ) ){                        
            return '&nbsp;'. $price_note_separator .'&nbsp;'. $price_note_text ;
        } else {
            return '&nbsp; /&nbsp;'. $price_note_text ;
        }
    } 
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0