Support

Account

Forum Replies Created

  • The relationships are set for each product. They are all “Simple” products. I’m using a ACF Relationship field to create custom variations.

    Screenshot of the Relationship field

    The Relationship field is also set up to be bidirectional:

    // Creating Bidirectional relationship
    // for products to create variations
    function bidirectional_acf_update_value( $value, $post_id, $field  ) {
    	// vars
    	$field_name = $field['name'];
    	$field_key = $field['key'];
    	$global_name = 'is_updating_' . $field_name;
    
    	// bail early if this filter was triggered from the update_field() function called within the loop below
    	// - this prevents an inifinte loop
    	if( !empty($GLOBALS[ $global_name ]) ) return $value;
    
    	// set global variable to avoid inifite loop
    	// - could also remove_filter() then add_filter() again, but this is simpler
    	$GLOBALS[ $global_name ] = 1;
    
    	// loop over selected posts and add this $post_id
    	if( is_array($value) ) {
    
    		foreach( $value as $post_id2 ) {
    
    			// load existing related posts
    			$value2 = get_field($field_name, $post_id2, false);
    
    			// allow for selected posts to not contain a value
    			if( empty($value2) ) {
    
    				$value2 = array();
    
    			}
    
    			// bail early if the current $post_id is already found in selected post's $value2
    			if( in_array($post_id, $value2) ) continue;
    
    			// append the current $post_id to the selected post's 'related_posts' value
    			$value2[] = $post_id;
    
    			// update the selected post's value (use field's key for performance)
    			update_field($field_key, $value2, $post_id2);
    
    		}
    
    	}
    
    	// find posts which have been removed
    	$old_value = get_field($field_name, $post_id, false);
    
    	if( is_array($old_value) ) {
    
    		foreach( $old_value as $post_id2 ) {
    
    			// bail early if this value has not been removed
    			if( is_array($value) && in_array($post_id2, $value) ) continue;
    
    			// load existing related posts
    			$value2 = get_field($field_name, $post_id2, false);
    
    			// bail early if no value
    			if( empty($value2) ) continue;
    
    			// find the position of $post_id within $value2 so we can remove it
    			$pos = array_search($post_id, $value2);
    
    			// remove
    			unset( $value2[ $pos] );
    
    			// update the un-selected post's value (use field's key for performance)
    			update_field($field_key, $value2, $post_id2);
    
    		}
    
    	}
    
    	// reset global varibale to allow this filter to function as per normal
    	$GLOBALS[ $global_name ] = 0;
    
    	// return
      return $value;
    }
    
    add_filter('acf/update_value/name=product_variations', 'bidirectional_acf_update_value', 10, 3);
  • We have the same problem. When specifying tabs, full toolbars, media buttons. It resets after saving to use: Only visual tab, basic toolbar and no media buttons.

    We’re using a repeater with flexible content. The wysiwyg field is inside one of the flexible fields.

  • I am not sure, but it seems like that is the case. The error references the select2 file from the WordPress SEO folder, when disabling that plugin, the same error references the select2 file from the Woocommerce folder. When disabling Woocommerce there are no errors.

  • The filter did not work for me. I’m still getting the same errors. I tried both return 4; and return 2;.

  • Hi James,

    I think there is a misunderstanding 🙂 The site is not multilingual, I was just changing the admin language that is default WP functionality (Settings -> General -> Site Language).

    I also have no other plugins activated as I build sites and themes with just ACF.

Viewing 5 posts - 1 through 5 (of 5 total)