str = str.replace(new RegExp("abc", 'g'), "");
работал лучше для меня, чем приведенные выше ответы. поэтому new RegExp("abc", 'g')
создает RegExp, что соответствует всему присутствию (флаг 'g'
) текста ("abc"
). Вторая часть - это то, что заменяется на, в вашем случае пустую строку (""
). str
- это строка, и мы должны ее переопределить, так как replace(...)
просто возвращает результат, но не переопределяет. В некоторых случаях вы можете использовать это.
@noufalcep вы ответите не ясно.
Наконец, после всего, я придумал рабочее решение. Я использую woocommerce 3.2.5 и wordpress версии 4.8.3.
Поскольку @noufalcep говорит, что форма внутри формы не является проблемой. Когда мы делаем
add_action ('woocommerce_checkout_after_order_review', 'woocommerce_checkout_coupon_form'),
blockquote>контейнер купона не завершается элементом формы. Но кнопка отправляется как тип ввода. Вот почему, когда мы применяем основную форму купона, получаем suibmitted.
Поэтому то, что я сделал, вставил купонную форму с jquery insertAfter. Ниже приведен код. Он отлично работает.
var coupon = $(".checkout_coupon"); $(coupon).insertAfter('.shop_table.woocommerce-checkout-review-order-table');
Затем это добавит форму после просмотра таблицы заказов. если вы хотите, чтобы текст с текстом «Имейте купон? Нажмите здесь, чтобы ввести код», вы должны обернуть элемент формой.
Здесь показан рабочий пример, https://themovementfix.com/checkout/
Если вам удобно редактировать файл functions.php внутри вашего каталога тем, вы можете добавить следующие строки кода:
remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );
add_action( 'woocommerce_after_checkout_form', 'woocommerce_checkout_coupon_form' );
Это существенно удалит купон (который подключен до checkout form) и повторно добавить его ПОСЛЕ формы выписки.
В качестве альтернативы вы можете использовать Javascript для «вырезания и вставки» блока html, содержащего поля купона, но это грязный способ кодирования, и я не предложит взять этот маршрут.
Небольшая ревизия предложенного ответа:
remove_action('woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10);
add_action('woocommerce_review_order_before_payment', 'woocommerce_checkout_coupon_form');
Это помещает купонный ввод ниже порядка и выше параметров оплаты.
После прочтения формы внутри проблемы формы, которая перестает работать с обычными add_actions, она вдохновила меня создать файл form-checkout.php в папке woocommerce моей темы и просто переместить код запуска < form ... >
сразу после строки do_action( ‘woocommerce_checkout_before_customer_details’ );
, затем использовали эти две строки для перемещения формы купона вниз под дисплеем просмотра вашего заказа, и он отлично поработал в v3.0.x WooCommerce:
remove_action( ‘woocommerce_before_checkout_form’, ‘woocommerce_checkout_coupon_form’, 10 );
add_action( ‘woocommerce_checkout_after_order_review’, ‘woocommerce_checkout_coupon_form’ );
Не перемещая код исходной формы, он не будет работать из-за формы в указанной выше форме, но после ее перемещения работает легко.