WooCommerce是否以编程方式创建“产品自定义属性”字段?

费萨尔·阿什法克(Faisal Ashfaq)

我试图以编程方式在URL字段下添加产品自定义属性,如图所示: 在此处输入图片说明

我已经可以使用transition_post_status动作使用以下代码来做到这一点

add_action('transition_post_status', 'wpa_120062_new_product', 10, 3);

function wpa_120062_new_product($new_status, $old_status, $post){

    if( function_exists( 'wc_get_attribute_taxonomies' ) && ( $attribute_taxonomies = wc_get_attribute_taxonomies() ) ) {

        $defaults = array();

        foreach ( $attribute_taxonomies as $key=>$tax ) {

                $name = wc_attribute_taxonomy_name( $tax->attribute_name );

                $value= get_post_meta( $post->ID , '_product_attributes');

                $defaults[ $name ] = array (
                    'name' => $name,

                    'position' => $key+1,
                    'is_visible' => 1,
                    'is_variation' => 1,
                    'is_taxonomy' => 1,
                );

            update_post_meta( $post->ID , '_product_attributes', $defaults );
        }
    }
}

但是这里的问题是,transition_post_status钩子不能很好地工作,因为它有时不能完全完成字段的加载。

我也曾尝试wp采取行动,但没有成功。

如何使用其他钩子使此代码起作用?

LoicTheAztec

为此,您没有使用其他钩子。但是,我向您的函数添加了缺少的变量global $post和仅过滤新创建的已发布产品的条件。

add_action('transition_post_status', 'wpa_120062_new_product', 10, 3);
function wpa_120062_new_product($new_status, $old_status, $post){

    global $post;
    if( $old_status != 'publish' && $new_status == 'publish' && !empty($post->ID) 
    && in_array( $post->post_type, array( 'product') ) ) {

        if( function_exists( 'wc_get_attribute_taxonomies' ) && ( $attribute_taxonomies = wc_get_attribute_taxonomies() ) ) {

            $defaults = array();
            foreach ( $attribute_taxonomies as $key=>$tax ) {
                $name = wc_attribute_taxonomy_name( $tax->attribute_name );
                $value= get_post_meta( $post->ID , '_product_attributes');
                $defaults[ $name ] = array (
                    'name' => $name,
                    'position' => $key+1,
                    'is_visible' => 1,
                    'is_variation' => 1,
                    'is_taxonomy' => 1,
                );
                update_post_meta( $post->ID , '_product_attributes', $defaults );
            }
        }
    }
}

此外(如果需要,但我不确定),您可以尝试使用wp_loaded钩子触发transition_post_status一次,因为一旦WordPress,所有插件和主题完全加载并实例化后,就会触发此钩子。可以通过以下方式完成:

if( function_exists( 'wpa_120062_new_product' ) {
    add_action( 'wp_loaded', 'my_wp_is_loaded' );
    function my_wp_is_loaded(){
        do_action ( 'transition_post_status' );
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WooCommerce是否以编程方式创建“产品自定义属性”字段?

来自分类Dev

以编程方式更新WooCommerce产品中设置的自定义属性值

来自分类Dev

如何以编程方式在WooCommerce中添加新的自定义产品属性?

来自分类Dev

如何使用我的自定义属性在Magento 1.9中以编程方式创建简单产品?

来自分类Dev

在WooCommerce 4中以编程方式从自定义产品类型添加新产品

来自分类Dev

在WooCommerce中以编程方式添加自定义设置选项卡以管理产品数据

来自分类Dev

在Woocommerce中以编程方式创建新产品属性

来自分类Dev

Wordpress Woocommerce 向产品添加属性/自定义属性

来自分类Dev

以编程方式创建drupal节点并设置自定义选择列表字段

来自分类Dev

以编程方式创建订单时如何保存自定义选项字段值?

来自分类Dev

根据WooCommerce中的自定义字段过滤产品

来自分类Dev

链接产品中的自定义字段 woocommerce

来自分类Dev

如何以编程方式为“商务产品”自定义订单项类型中的字段设置值?

来自分类Dev

使用自定义数据和布局属性以编程方式创建图标

来自分类Dev

按自定义属性对象过滤WooCommerce产品

来自分类Dev

WooCommerce:将“自定义产品属性”移动到“分类”

来自分类Dev

WooCommerce-获取自定义产品属性

来自分类Dev

是否可以向产品添加自定义字段?

来自分类Dev

如何在WooCommerce订单中显示产品自定义字段(自定义SKU)

来自分类Dev

以自定义标头以编程方式创建UICollectionView

来自分类Dev

如何使用AutoLayout以编程方式创建自定义UITableViewCell

来自分类Dev

以编程方式创建自定义Eventlog视图

来自分类Dev

以自定义类以编程方式创建UIView(Swift 4)

来自分类Dev

以编程方式创建自定义Eventlog视图

来自分类Dev

以编程方式创建自定义动态原型单元

来自分类Dev

如何以编程方式快速创建具有控件文本字段,按钮等的自定义视图

来自分类Dev

在woocommerce网站的产品列表上的快速编辑选项上添加自定义产品字段

来自分类Dev

在WooCommerce中从带有链接产品的产品自定义字段获取ID

来自分类Dev

显示WooCommerce自定义产品属性和单个产品上的所有术语

Related 相关文章

  1. 1

    WooCommerce是否以编程方式创建“产品自定义属性”字段?

  2. 2

    以编程方式更新WooCommerce产品中设置的自定义属性值

  3. 3

    如何以编程方式在WooCommerce中添加新的自定义产品属性?

  4. 4

    如何使用我的自定义属性在Magento 1.9中以编程方式创建简单产品?

  5. 5

    在WooCommerce 4中以编程方式从自定义产品类型添加新产品

  6. 6

    在WooCommerce中以编程方式添加自定义设置选项卡以管理产品数据

  7. 7

    在Woocommerce中以编程方式创建新产品属性

  8. 8

    Wordpress Woocommerce 向产品添加属性/自定义属性

  9. 9

    以编程方式创建drupal节点并设置自定义选择列表字段

  10. 10

    以编程方式创建订单时如何保存自定义选项字段值?

  11. 11

    根据WooCommerce中的自定义字段过滤产品

  12. 12

    链接产品中的自定义字段 woocommerce

  13. 13

    如何以编程方式为“商务产品”自定义订单项类型中的字段设置值?

  14. 14

    使用自定义数据和布局属性以编程方式创建图标

  15. 15

    按自定义属性对象过滤WooCommerce产品

  16. 16

    WooCommerce:将“自定义产品属性”移动到“分类”

  17. 17

    WooCommerce-获取自定义产品属性

  18. 18

    是否可以向产品添加自定义字段?

  19. 19

    如何在WooCommerce订单中显示产品自定义字段(自定义SKU)

  20. 20

    以自定义标头以编程方式创建UICollectionView

  21. 21

    如何使用AutoLayout以编程方式创建自定义UITableViewCell

  22. 22

    以编程方式创建自定义Eventlog视图

  23. 23

    以自定义类以编程方式创建UIView(Swift 4)

  24. 24

    以编程方式创建自定义Eventlog视图

  25. 25

    以编程方式创建自定义动态原型单元

  26. 26

    如何以编程方式快速创建具有控件文本字段,按钮等的自定义视图

  27. 27

    在woocommerce网站的产品列表上的快速编辑选项上添加自定义产品字段

  28. 28

    在WooCommerce中从带有链接产品的产品自定义字段获取ID

  29. 29

    显示WooCommerce自定义产品属性和单个产品上的所有术语

热门标签

归档