第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Woocommerce 購物車和結(jié)帳中未保存復(fù)選框值

Woocommerce 購物車和結(jié)帳中未保存復(fù)選框值

慕標(biāo)琳琳 2021-06-29 09:15:26
我在 woocommerce 購物車和結(jié)帳中保存自定義復(fù)選框值時遇到問題。我在結(jié)帳運輸表中添加了自定義復(fù)選框,如果選擇了某些運輸方式,該復(fù)選框會添加自定義袋子。如果復(fù)選框被選中并且我選擇了其他運輸方式,然后返回到某個帶有復(fù)選框的復(fù)選框,則在購物車摘要的 ajax 重新加載時未選中復(fù)選框。我試圖用這樣的東西在 cookie 中保存復(fù)選框值var checkbox = $('#your-form :checkbox:first'),    checkboxCookieName = 'checkbox-state';checkbox.prop('checked', +$.cookie(checkboxCookieName));checkbox.click(function() {   $.cookie(checkboxCookieName, +this.checked);});但它沒有用。復(fù)選框代碼:function my_custom_checkout_field() {    $chosen_methods = WC()->session->get( 'chosen_shipping_methods' );    $chosen_shipping = $chosen_methods[0];     if ($chosen_shipping == 'nova_poshta_shipping_method') {     echo '<div id="my_custom_checkout_field">';    woocommerce_form_field( 'my_field_name', array(        'type'      => 'checkbox',        'checked'      => 'checked',        'class'     => array('input-checkbox'),        'label'     => __('<span class="paperbagspan">Добавить фирменный пакет <img class="paperbag" src="https://paradisefruit.com.ua/wp-content/uploads/2019/06/paper-bag.png" style="width:30px"><img class="paperbagpink" style="display:none; width:30px" src="https://paradisefruit.com.ua/wp-content/uploads/2019/06/paper-bag-pink.png" ></span>'),    ),  WC()->checkout->get_value( 'my_field_name' ) );    echo '</div>';}}add_action( 'woocommerce_after_shipping_rate', 'checkout_shipping_additional_field', 20, 2 );function checkout_shipping_additional_field( $method, $index ){    if( $method->get_id() == 'nova_poshta_shipping_method' ){       return my_custom_checkout_field();    }}// Save the custom checkout field in the order meta, when checkbox has been checkedadd_action( 'woocommerce_checkout_update_order_meta', 'custom_checkout_field_update_order_meta', 10, 1 );function custom_checkout_field_update_order_meta( $order_id ) {    if ( ! empty( $_POST['my_field_name'] ) )        update_post_meta( $order_id, 'my_field_name', sanitize_text_field($_POST['my_field_name'] ));}我做錯了什么,或者是否有一些 wordpress 功能可以保存自定義字段值?
查看完整描述

1 回答

?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗 獲得超22個贊

我希望我理解正確——即您有一個復(fù)選框,并且在每個輸入上,該值都存儲在 cookie 中。在頁面加載時,您提取 cookie 值并將其設(shè)置為復(fù)選框。一切正常,除了當(dāng)您執(zhí)行 AJAX 請求并加載整個內(nèi)容時。


這似乎更像是一個 javascript 問題(而不是 PHP)。


在頁面加載時,您已經(jīng)根據(jù) cookie 值將復(fù)選框標(biāo)記為選中。但是,當(dāng)您執(zhí)行 AJAX 請求時,您會拉取復(fù)選框,并且不再調(diào)用負(fù)責(zé)設(shè)置復(fù)選框值的 javascript 代碼(即 checkbox.prop('checked', +$.cookie(checkboxCookieName)) )。


您需要做的是調(diào)用:


checkbox.prop('checked', +$.cookie(checkboxCookieName));

在完成 ajax 請求和注入 HTML 之后


Woocommerce 有這三個事件:


updated_wc_div updated_cart_totals updated_shipping_method


我不完全理解你想要做什么,但你必須根據(jù)你的需要將你的代碼掛鉤到其中之一。這樣做的方法是(例如使用 updated_cart_totals):


$(document).on('updated_cart_totals', function(){

    checkbox.prop('checked', +$.cookie(checkboxCookieName));

});

希望它有用。


查看完整回答
反對 回復(fù) 2021-07-08
  • 1 回答
  • 0 關(guān)注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號