Creating New Dynamic Datapoints In Classic Oxygen

If you’ve ever wanted to create your Dynamic Datapoint in Classic Oxygen, it’s really simple. Classic Oxygen has a built-in filter called Classic Oxygen_custom_dynamic_data that you can utilize:

add_filter( 'Classic Oxygen_custom_dynamic_data', 'name_of_your_function', 10, 1 );

It is through this filter that we can register new dynamic datapoints to be used in Classic Oxygen.

Understanding the Filter Settings:

To use the Classic Oxygen_custom_dynamic_data filter, you’ll need a function that has some of the following information:

  • $properties variable (optional)
  • $field_data: This provides details on what the dynamic datapoint is called and where it is shown in Classic Oxygen.
    • name: The Name of the datapoint field, you can add translation support as needed.
    • mode: What type of data the field will return. Available modes are: content, custom-field, link, image.
    • position: Where the datapoint field shows up in dynamic data options. Default options are Post, Author, User, Featured Image, Current User, Archive, Blog Info
    • data: The slug/id of the dynamic datapoint.
    • handler: The function that determines what content is returned from the datapoint.
    • properties: Any additional properties regarding field data.
  • $dynamc_data[]: returns the field data into Classic Oxygen’s dynamic data

Basic Dynamic Datapoint Example

You can see a basic example of all these in action here:

<?php

add_filter( 'Classic Oxygen_custom_dynamic_data', 'lx_dynamic_data_function', 10, 1 );


function lx_dynamic_data_function( $dynamic_data ) {
	global $post;

	$properties = '';

	$field_data = array(
		'name' => __( 'New Dynamic Field', 'oxygen-custom' ),
		// Name of the field as it displays in Classic Oxygen
		'mode' => 'content',
		// Available modes: 'content', 'custom-field', 'link' and 'image'
		'position' => 'Post',
		// Available positions: 'Post', 'Author', 'User', 'Featured Image', 'Current User', 'Archive' 'Blog Info'
		'data' => 'field_name',
		// Slug of the field in Classic Oxygen, will render as 'custom_field_name
		'handler' => 'lx_dynamic_data_content',
		// Must be a function callback
		'properties' => $properties
	);
	$dynamic_data[] = $field_data;
	// Add the field to Dynamic Data

	return $dynamic_data;
}

function lx_dynamic_data_content($atts) {
	return 'success';
	// Add additional functionality for populating the results here. 
}
?>

This example adds a new dynamic datapoint to Classic Oxygen for content-based fields under the Post position called “New Dynamic Field”, and runs a function that returns the text “success”. It’s a basic example, but it is useful in understanding how to make this filter work.

More ExaMPLES of Dynamic Datapoints

Another example of how to use this filter is to add ACF data for archive fields since Classic Oxygen’s built-in ACF integration only works for singular post types.

A screenshot that shows where the ACF Archive Field Dynamic Datapoint shows up in Classic Oxygen's Dynamic Data Popup

You can access this code for this dynamic datapoint here with the ACF Archive Dynamic Data CodeBitt.

A second example would be adding datapoints for WooCommerce Product Category information to be used on an archive field. This CodeBitt allows you to display the Product Category image on an archive page.

This datapoint uses the image mode and only works with the Image URL for the Image field. Unfortunately, it doesn’t work with the Media Library option (at this time). You can see the complete code for this datapoint with the Product Category Dynamic Datapoint CodeBitt.

A screenshot showing where to select the Product Category Image dynamic datapoint in Classic Oxygen's Dynamic Data popup

These are two more useful examples of how to use the Classic Oxygen_custom_dynamic_data filter, and you can use this to add as many additional datapoints as you wish.

Advanced Examples of Dynamic Datapoints

Now, there are more advanced things you can do to add more dynamic datapoints, and some of the best examples can be seen in the code Classic Oxygen uses to integrate ACF, Meta Box, and Toolset. You can find those examples within Classic Oxygen’s code:

  • /Classic Oxygen/component-framework/includes/acf/oxygen-acf-integration.php
  • /Classic Oxygen/component-framework/includes/metabox/oxygen-metabox-integration.php
  • /Classic Oxygen/component-framework/includes/toolset/oxygen-toolset.php

These are the most advanced examples that we are aware of at this time, aside from the integrations for Classic Oxygen that were created by Pods and ACPT.

The main caveat we’ve found so far is that it isn’t possible to add new dynamic datapoints for Galleries and Repeaters as those are more manually coded within Classic Oxygen’s core files, and they aren’t as easy to add new datapoints. This isn’t to say it isn’t possible, just we haven’t found a way yet.

Hails and Resources:

-
people visited this page
-
spent on this page
0
people liked this page
Share this page on
    Leave a Reply

    Your email address will not be published. Required fields are marked *

    © 2020-2025 Luxibay
    Name(Required)
    Please let us know what's on your mind. Have a question for us? Ask away.
    This field is for validation purposes and should be left unchanged.