복붙노트

[WORDPRESS] Woocommerce_get_price_html 후크에 가격을 따르는 다국어 텍스트를 추가하십시오

WORDPRESS

Woocommerce_get_price_html 후크에 가격을 따르는 다국어 텍스트를 추가하십시오

해결법


  1. 1.가격이 반환되기 전에 $ PRICE_HTML 변수의 운영자를위한 문자열 (예를 들어 예를 들어 태그에서) 안에이 단위 측정 값을 연결해야합니다.

    가격이 반환되기 전에 $ PRICE_HTML 변수의 운영자를위한 문자열 (예를 들어 예를 들어 태그에서) 안에이 단위 측정 값을 연결해야합니다.

    따라서 코드가 다음과 같습니다.

    //New Price
    add_action( 'woocommerce_product_options_pricing' ,'custom_unit_price' );
    function custom_unit_price() {
        woocommerce_wp_text_input( array( 
            'id'                => '_unit_price', 
            'class'             => 'wc_input_price short', 
            'label'             => __( 'Unit Price', 'woocommerce' ) .    ' ('.get_woocommerce_currency_symbol().')', 
            'type'              => 'number', 
            'desc_tip'          => 'true',
            'description'       => __( 'Enter the unit price if you want to show this price type.', 'woocommerce' ), 
            'custom_attributes' => array(
                'step'          => 'any',
                'min'           => '0'
            ) 
        ));
    }
    
    add_action('woocommerce_process_product_meta_simple', 'save_custom_unit_price');
    function save_custom_unit_price($post_id) {
        global $wpdb, $woocommerce, $woocommerce_errors;
        update_post_meta( $post_id, '_unit_price', stripslashes( $_POST['_unit_price'] ) );
    }
    
    // Text Field for unit measurement
    add_action('woocommerce_product_options_pricing','custom_unit_measurement');
    function custom_unit_measurement() {
        woocommerce_wp_text_input ( array(
            'id'            => '_unit_measurement', 
            'label'         => __( 'Unit Measurement', 'woocommerce' ), 
            'placeholder'   => 'i.e: pro Stück',
            'desc_tip'      => 'true',
            'description'   => __( 'Enter the unit measurement in your language. If you want to show price per unit, this field must be filled', 'woocommerce' ) 
    
        ));
    }
    
    add_action('woocommerce_process_product_meta_simple', 'save_custom_unit_measurement');
    function save_custom_unit_measurement($post_id) {
        global $wpdb, $woocommerce, $woocommerce_errors;
        update_post_meta( $post_id, '_unit_measurement', stripslashes( $_POST['_unit_measurement'] ) );
    }
    
    // only copy the opening php tag if needed
    // Change the shop / product prices if a _unit_price is set
    add_filter( 'woocommerce_get_price_html', 'sv_change_product_html', 10, 2 );
    function sv_change_product_html( $price_html, $product ) {
    
        $_unit_price = get_post_meta( $product->id, '_unit_price', true );
    
        if ( ! empty( $_unit_price ) ) {
            $_unit_measurement = get_post_meta( $product->id, '_unit_measurement', true );
    
            // Here you just concatenate the $_unit_measurement variable (in for example another span tag) after the price
            $price_html = '<span class="amount">' . wc_price( $_unit_price ).  '  </span>';
            $price_html .= '<span class="mesurement">' . $_unit_measurement . '  </span><br />';        
        }
        // return the formated price with the formated unit mesurement
        return $price_html;
    }
    

    코드는 활성 자식 테마의 function.php 파일 (활성 테마 또는 모든 플러그인 파일)입니다.

  2. from https://stackoverflow.com/questions/41272438/add-a-multilingual-text-after-price-in-woocommerce-get-price-html-hook by cc-by-sa and MIT license