Ich baue eine WooCommerce-Website und Customizing, Kopieren und Einfügen von Code aus Internet-Bibliotheken.Fügen Sie einen mehrsprachigen Text nach Preis in woocommerce_get_price_html hook
Ich habe es geschafft, "benutzerdefinierte Preis und benutzerdefinierten Text" in woocommerce Produkt hinzufügen, so dass sie in verschiedene Sprachen übersetzt werden können. Hier ist der Blick von der Produktseite: https://www.primacent.de/de/product/woo-album-3-2
Hier ist mein Code in functions.php
:
//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
function sv_change_product_html($price_html, $product) {
$_unit_price = get_post_meta($product->id, '_unit_price', true);
if (! empty($_unit_price)) {
$price_html = '<span class="amount">' . wc_price($_unit_price). ' </span>';
echo $_unit_measurement = get_post_meta($product->id, '_unit_measurement', true);echo'<br />';
}
return $price_html;
}
add_filter('woocommerce_get_price_html', 'sv_change_product_html', 10, 2);
Das Problem ist, dass ich die Einheit Messung (_unit_measurement
) nach dem Stückpreis (_unit_price
) will, um die Bindestrichmarke '-' zu ersetzen.
Aus einigen Gründen kann ich den zweiten Meta-Wert nicht in <span>
wrap.
Bitte helfen Sie mir. Wie kann ich das erreichen?
Danke!