I want to be able to display a Qr code dynamically created with the post url, i'm using jet engine qr module, i saw the code in a video but i'snt working for me this is the function code that i'm trying:
also i want to add this function using code snippets.
add_filer( 'jet-engine/listings/allowed-callbacks', 'add_custom_dynamic_field_callback' );
add_filter( 'jet-engine/listing/dynamic-field/callback-args', 'add_custom_dynamic_field_callbacks_args', 0, 3);
add_action ('jet-engine/listing/dynamic-field/callback-controlls' , 'add_custom_control', 0, 1 );
function add_custom_dynamic_field_callbacks( $callbacks) {
$callbacks['url_as_qr'] = 'Post URL as Qr-code';
return $callback;
}
function url_as_qr( $value, $code_size) {
if ( class_exists( 'Jet_Engine_Module_QR_Code') ) {
$qr = new Jet_Engine_Module_QR_Code();
$result = $qr->get_qr_code( $value, $code_size['size'] );
}
return $result;
}
function add_custom_dynamic_field_callbacks_args( $result, $callback, $settings) {
if ($callback === 'url_as_qr') {
$result = array( get_permalink(), $settings['code_size'] );
}
return $result;
}
function add_cutom_control( $controls ) {
$controls->add_control(
'code_size' ,
array(
'label' => 'QR_Code_Size',
'type' => 'slider',
'range' => array(
'px' => array(
'nis' => 50,
'nax' => 400,
),
),
'condition' => array(
'dynamic_field_filter' => 'yes'
'filter_callback' => array( 'url_as_qr'),
),
)
);
}
There are some typos in your code that may cause the issues.
add_filter
instead of add_filer
add_custom_dynamic_field_callbacks
function: you are returning $callback
instead of $callbacks
add_custom_control
function: your code says add_cutom_control
instead of add_custom_control
'condition'
array after 'yes'min
and max
not nis
and nax
jet-engine/listing/dynamic-field/callback-controlls
(callback-controlls
instead of callback-controls
).The corrected code looks like this:
add_filter( 'jet-engine/listings/allowed-callbacks', 'add_custom_dynamic_field_callbacks' );
add_filter( 'jet-engine/listing/dynamic-field/callback-args', 'add_custom_dynamic_field_callbacks_args', 0, 3 );
add_action( 'jet-engine/listing/dynamic-field/callback-controls', 'add_custom_control', 0, 1 );
function add_custom_dynamic_field_callbacks( $callbacks ) {
$callbacks['url_as_qr'] = 'Post URL as QR-code';
return $callbacks;
}
function url_as_qr( $value, $code_size ) {
if ( class_exists( 'Jet_Engine_Module_QR_Code' ) ) {
$qr = new Jet_Engine_Module_QR_Code();
$result = $qr->get_qr_code( $value, $code_size['size'] );
}
return $result;
}
function add_custom_dynamic_field_callbacks_args( $result, $callback, $settings ) {
if ( $callback === 'url_as_qr' ) {
$result = array( get_permalink(), $settings['code_size'] );
}
return $result;
}
function add_custom_control( $controls ) {
$controls->add_control(
'code_size',
array(
'label' => 'QR_Code_Size',
'type' => 'slider',
'range' => array(
'px' => array(
'min' => 50,
'max' => 400,
),
),
'condition' => array(
'dynamic_field_filter' => 'yes',
'filter_callback' => array( 'url_as_qr' ),
),
)
);
}
I did not test this code, maybe you could add some error messages to your question if this solution doesn't solve your problem.