Plugin OneSender cloud menggunakan template editor untuk menampilkan shortcode. Tidak hardcoded.
Untuk menambahkan custom shortcode gunakan contoh kode berikut.
Contoh ini mengasumsikan data disimpan di meta order.
<?php
/**
* Plugin Name: Custom shortcodes for OneSender cloud
* Plugin URI: https://example.local/dummy-plugin
* Description: Custom shortcodes for OneSender cloud.
* Version: 1.0.0
* Author: Dev
*/
/*
Simulasi penggunaan di plugin woocommerce
Data disimpan di order meta
Menggunakan meta key sebagai shortcode id
*/
/* Pastikan parent plugin running di awal */
add_action( 'init', function() {
// STEP 1: Register shortcodes
add_filter( 'ocl/modules/woocommerce/shortcode_structure', 'ocl_register_shortcodes' );
// STEP 2: Isi data ke shortcodes
add_filter( 'ocl/modules/woocommerce/shortcode_values', 'ocl_parse_shortcodes', 20, 2 );
} );
function ocl_register_shortcodes( $group ) {
$shortcodes = [
[
'module' => 'woocommerce',
'id' => '_ocl_shortcode_1', // nama order meta
'title' => 'Shortcode 1'
],
[
'module' => 'woocommerce',
'id' => '_ocl_shortcode_2', // nama order meta
'title' => 'Shortcode 2'
],
[
'module' => 'woocommerce',
'id' => '_ocl_shortcode_3', // nama order meta
'title' => 'Shortcode 3'
],
];
$group[] = [
'group' => 'custom_shortcode',
'title' => 'Custom Shortcodes',
'items' => $shortcodes
];
return $group;
}
function ocl_parse_shortcodes( $shortcodes, $order ) {
/* in case $order is null. Get order object */
if (!$order) {
$order = wc_get_order( $shortcodes['order_id'] );
}
/* isi data ke shortcodes */
$shortcodes['_ocl_shortcode_1'] = $order?->get_meta( '_ocl_shortcode_1' );
$shortcodes['_ocl_shortcode_2'] = $order?->get_meta( '_ocl_shortcode_2' );
$shortcodes['_ocl_shortcode_3'] = $order?->get_meta( '_ocl_shortcode_3' );
return $shortcodes;
}