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

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

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

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

PHP
慕妹3146593 2021-08-28 15:32:00
我在 woocommerce 購物車和結(jié)帳中保存自定義復選框值時遇到問題。我在結(jié)帳運輸表中添加了自定義復選框,如果選擇了某些運輸方式,該復選框會添加自定義袋子。如果復選框被選中并且我選擇了其他運輸方式,然后使用復選框返回到某個,則在購物車摘要的 ajax 重新加載時未選中復選框。我試圖用這樣的東西在 cookie 中保存復選框值var checkbox = $('#your-form :checkbox:first'),    checkboxCookieName = 'checkbox-state';checkbox.prop('checked', +$.cookie(checkboxCookieName));checkbox.click(function() {   $.cookie(checkboxCookieName, +this.checked);});但它沒有用。復選框代碼: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貢獻1853條經(jīng)驗 獲得超18個贊

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


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


在頁面加載時,您已經(jīng)根據(jù) cookie 值將復選框標記為選中。但是,當您執(zhí)行 AJAX 請求時,您會拉取復選框,并且不再調(diào)用負責設置復選框值的 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));

});

希望它有用。


查看完整回答
反對 回復 2021-08-28
  • 1 回答
  • 0 關注
  • 140 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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