json 详细说明WooCommerce和高级自定义字段的交付时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json 详细说明WooCommerce和高级自定义字段的交付时间相关的知识,希望对你有一定的参考价值。

<?php

function get_acf_product_cat_delivery_time( $product ) {
    $args = array( 'taxonomy' => 'product_cat', 'fields' => 'ids' );
    $terms = wp_get_post_terms( $product->ID, 'product_cat', $args);

	if( have_rows( 'acf_product_cat_delivery', 'option' ) ) {

		while ( have_rows('acf_product_cat_delivery', 'option') ) {
			the_row();
			$delivery_term_object = get_sub_field('acf_product_cat_delivery_taxonomy');

			if( in_array( $delivery_term_object->term_id, $terms ) ) {
				// return '<p class="estimate-delivery-time"><em><small>'.get_sub_field('acf_product_cat_delivery_text').'</small></em></p>';
				return get_sub_field('acf_product_cat_delivery_text');
			}
		}
	}

	return false;
}

function get_acf_product_delivery_time( $product ) {

	if( get_field('acf_product_delivery_text', $product->ID ) ) {
		return get_field('acf_product_delivery_text', $product->ID );
	}

	return false;
}

add_filter( 'woocommerce_get_availability', 'yanco_custom_get_availability', 1, 2);
function yanco_custom_get_availability( $availability, $_product ) {

	$default_delivery_prefix = __('Leveringstid: ', 'woocommerce');

	if ( $_product->is_in_stock() ) {
		//  Er varen på lager (uanset hvilket valgmulighed vi har valgt ved produktet) så skal der stå: 1-3 dages levering.
	    $availability['availability'] = $default_delivery_prefix . __('1-3 dage', 'woocommerce');
	}

	if ( ! $_product->is_in_stock() ) {
		// Er varen ikke på lager, så har vi flg. valgmuligheder:
		$availability['availability'] = $default_delivery_prefix . __('Udsolgt på lager og fjernlager. Ved bestilling kontakter vi med en status og forventet leveringsdato.', 'woocommerce');

		if( ! $_product->backorders_allowed() ) {
			// Hvis valgmuligheden står på tillad ikke: Udsolgt på lager og fjernlager. Ved bestilling kontakter vi med en status og forventet leveringsdato.
			$availability['availability'] = $default_delivery_prefix . __('Udsolgt på lager og fjernlager. Ved bestilling kontakter vi med en status og forventet leveringsdato.', 'woocommerce');
		}

		if( $_product->backorders_allowed() ) {
			// Hvis valgmuligheden står på tillad: 3-10 dages levering.
			$availability['availability'] = $default_delivery_prefix . __('3-10 dage', 'woocommerce');
		}

		if( $_product->backorders_require_notification() ) {
			// Hvis valgmuligheden står på tillad, men underret kunder: 2-4 ugers levering.
			$availability['availability'] = $default_delivery_prefix . __('2-4 uger', 'woocommerce');
		}
	}

	$acf_product_cat_delivery_time = get_acf_product_cat_delivery_time( $_product );
	if( $acf_product_cat_delivery_time != false ) {
		$availability['availability'] = $acf_product_cat_delivery_time;
	}

	$acf_product_delivery_time = get_acf_product_delivery_time( $_product );
	if( $acf_product_delivery_time != false ) {
		$availability['availability'] = $default_delivery_prefix . $acf_product_delivery_time;
	}


	return $availability;
}
[
    {
        "key": "group_58877511005b3",
        "title": "Produkt Leveringstid",
        "fields": [
            {
                "default_value": "",
                "maxlength": "",
                "placeholder": "F.eks. 2-7 dage",
                "prepend": "",
                "append": "",
                "key": "field_58877522b91b5",
                "label": "Produkt Leveringstid",
                "name": "acf_product_delivery_text",
                "type": "text",
                "instructions": "",
                "required": 0,
                "conditional_logic": 0,
                "wrapper": {
                    "width": "",
                    "class": "",
                    "id": ""
                }
            }
        ],
        "location": [
            [
                {
                    "param": "post_type",
                    "operator": "==",
                    "value": "product"
                }
            ]
        ],
        "menu_order": -1,
        "position": "side",
        "style": "default",
        "label_placement": "top",
        "instruction_placement": "label",
        "hide_on_screen": "",
        "active": 1,
        "description": ""
    },
    {
        "key": "group_584feea0bffc1",
        "title": "Produkt Kategori Leveringstid Indstillinger",
        "fields": [
            {
                "sub_fields": [
                    {
                        "taxonomy": "product_cat",
                        "field_type": "select",
                        "multiple": 0,
                        "allow_null": 0,
                        "return_format": "object",
                        "add_term": 0,
                        "load_terms": 1,
                        "save_terms": 1,
                        "key": "field_584feef88f7cd",
                        "label": "Produkt Kategori",
                        "name": "acf_product_cat_delivery_taxonomy",
                        "type": "taxonomy",
                        "instructions": "V\u00e6lg produkt kategorien du \u00f8nsker at s\u00e6tte standard leveringstidstekst for",
                        "required": 1,
                        "conditional_logic": 0,
                        "wrapper": {
                            "width": "",
                            "class": "",
                            "id": ""
                        }
                    },
                    {
                        "default_value": "",
                        "maxlength": "",
                        "placeholder": "F.eks. 2-7 dage",
                        "prepend": "",
                        "append": "",
                        "key": "field_584fef708f7ce",
                        "label": "Tekst",
                        "name": "acf_product_cat_delivery_text",
                        "type": "text",
                        "instructions": "Skriv teksten der skal vises for denne produktkategori.",
                        "required": 1,
                        "conditional_logic": 0,
                        "wrapper": {
                            "width": "",
                            "class": "",
                            "id": ""
                        }
                    }
                ],
                "min": 0,
                "max": 0,
                "layout": "table",
                "button_label": "Tilf\u00f8j Ny Brand Leveringstekst",
                "collapsed": "",
                "key": "field_584feed78f7cc",
                "label": "Standard Produkt Kategori Leveringstid",
                "name": "acf_product_cat_delivery",
                "type": "repeater",
                "instructions": "Inds\u00e6t standard leveringstider for produktkategorier",
                "required": 0,
                "conditional_logic": 0,
                "wrapper": {
                    "width": "",
                    "class": "",
                    "id": ""
                }
            }
        ],
        "location": [
            [
                {
                    "param": "options_page",
                    "operator": "==",
                    "value": "delivery-general-settings"
                }
            ]
        ],
        "menu_order": 0,
        "position": "normal",
        "style": "default",
        "label_placement": "top",
        "instruction_placement": "label",
        "hide_on_screen": "",
        "active": 1,
        "description": ""
    }
]

以上是关于json 详细说明WooCommerce和高级自定义字段的交付时间的主要内容,如果未能解决你的问题,请参考以下文章

WooCommerce 中多个国家/地区的基于地理位置的自定义重定向

WooCommerce 中特定产品的基于地理位置的自定义重定向

如何在 WooCommerce 3 中添加自定义工作运输方式

php [WooCommerce Instagram]如果您想将其更改为缩略图或其他图像尺寸,请将此代码添加到您的“自定义功能”区域

将高级自定义字段添加到 WooCommerce 产品变体

在最近的订单模板和管理订单上显示产品帖子类型高级自定义字段(woocommerce)