Обновлено до 2015 года: сейчас прошло шесть лет: большинство людей используют загрузчик модулей, а в основных модульных системах есть способы загрузки шаблонов. Это не встроенный, но наиболее распространенным типом многострочной строки являются шаблоны, и в любом случае шаблоны вообще не должны содержать JS.
Использование require.js 'text' plugin , с многострочным шаблоном в template.html
var template = require('text!template.html')
Browserify использует модуль «brfs» для загрузки текстовых файлов. Это фактически построит ваш шаблон в вашем комплекте HTML.
var fs = require("fs");
var template = fs.readFileSync(template.html', 'utf8');
Легко.
Обновлено (2018) с 2 версиями (проверено и продолжает работать и в Woocommerce 3.3.x) :
blockquote>1) Версия плагина с Функция конструктора:
Используемые вами крючки устарели в WooCommerce 3 +
Чтобы заставить работать для всех цен на продукты, включая цены на изменение, вы должны использовать это:
## The following goes inside the constructor ## // Simple, grouped and external products add_filter('woocommerce_product_get_price', array( $this, 'custom_price' ), 99, 2 ); add_filter('woocommerce_product_get_regular_price', array( $this, 'custom_price' ), 99, 2 ); // Variations add_filter('woocommerce_product_variation_get_regular_price', array( $this, 'custom_price' ), 99, 2 ); add_filter('woocommerce_product_variation_get_price', array( $this, 'custom_price' ), 99, 2 ); // Variable (price range) add_filter('woocommerce_variation_prices_price', array( $this, 'custom_variable_price' ), 99, 3 ); add_filter('woocommerce_variation_prices_regular_price', array( $this, 'custom_variable_price' ), 99, 3 ); ## This goes outside the constructor ## public function custom_price( $price, $product ) { // Delete product cached price (if needed) // wc_delete_product_transients($product->get_id()); return $price * 2; // X2 for testing } public function custom_variable_price( $price, $variation, $product ) { // Delete product cached price (if needed) // wc_delete_product_transients($variation->get_id()); return $price * 2; // X2 for testing }
Код проверен и отлично работает (только) в WooCommerce 3 +.
2) Для версии темы:
functions.php
файл в активной дочерней теме (или активной теме) :// Simple, grouped and external products add_filter('woocommerce_product_get_price', 'custom_price', 99, 2 ); add_filter('woocommerce_product_get_regular_price', 'custom_price', 99, 2 ); // Variations add_filter('woocommerce_product_variation_get_regular_price', 'custom_price', 99, 2 ); add_filter('woocommerce_product_variation_get_price', 'custom_price', 99, 2 ); function custom_price( $price, $product ) { // Delete product cached price (if needed) // wc_delete_product_transients($product->get_id()); return $price * 2; // X2 for testing } // Variable (price range) add_filter('woocommerce_variation_prices_price', 'custom_variable_price', 99, 3 ); add_filter('woocommerce_variation_prices_regular_price', 'custom_variable_price', 99, 3 ); function custom_variable_price( $price, $variation, $product ) { // Delete product cached price (if needed) // wc_delete_product_transients($variation->get_id()); return $price * 2; // X2 for testing }
Протестировано и работает в woocommerce 3 +
Для продаваемых товаров у вас есть эти крючки:
woocommerce_product_get_sale_price
(простые, сгруппированные и внешние продукты)woocommerce_variation_prices_sale_price
(переменные продукты (min-max))woocommerce_variation_prices_sale_price
(варианты продуктов)
wc_delete_product_transients($post->ID);
... поскольку это кажется специфичным при использовании из плагина. Когда вы используете эти перехваты через тему, эта проблема не существует. После этого не будет достаточно ... так что вам придется искать немного. – LoicTheAztec 23 August 2017 в 00:55