admin管理员组文章数量:1426181
How can I create a shortcode from an html and php code like below:
function hire_feedback_surveyyy() {
$product_id = 21876;
// We get all the Orders for the given product ID in an arrray
$orders_ids_array = retrieve_orders_ids_from_a_product_id( $product_id );
$output = '';
$output .= '<select>';
foreach($orders_ids_array as $value) {
$order = wc_get_order( $value );
$sp_name = $order->get_billing_company();
$order_id = $order->get_id();
$output .= '<option value="'.$order_id.'">'.$sp_name.'</option>';
}
$output .= '</select>';
return $output;
}
add_shortcode( 'show_hire_analytics', 'hire_feedback_surveyyy');
I also tried this
function hire_feedback_surveyyy() {
ob_start();
$product_id = 21876;
// We get all the Orders for the given product ID in an arrray
$orders_ids_array = retrieve_orders_ids_from_a_product_id( $product_id );
?>
<select>
<?php foreach($orders_ids_array as $value) {
$order = wc_get_order( $value );
$sp_name = $order->get_billing_company();
$order_id = $order->get_id();
?>
<option value="<?php echo $order_id ?>"><?php echo $sp_name ?></option>
<?php }?>
</select>
<?php
$content = ob_get_contents();
ob_end_clean();
return $content;
}
add_shortcode( 'show_hire_analytics', 'hire_feedback_surveyyy');
Here is the function I am trying to use in the shortcode as seen on this page:
function retrieve_orders_ids_from_a_product_id( $product_id ) {
global $wpdb;
// Define HERE the orders status to include in <== <== <== <== <== <== <==
$orders_statuses = "'wc-completed'";
# Requesting All defined statuses Orders IDs for a defined product ID
$orders_ids = $wpdb->get_col( "
SELECT DISTINCT woi.order_id
FROM {$wpdb->prefix}woocommerce_order_itemmeta as woim,
{$wpdb->prefix}woocommerce_order_items as woi,
{$wpdb->prefix}posts as p
WHERE woi.order_item_id = woim.order_item_id
AND woi.order_id = p.ID
AND p.post_status IN ( $orders_statuses )
AND woim.meta_key LIKE '_product_id'
AND woim.meta_value LIKE '$product_id'
ORDER BY woi.order_item_id DESC"
);
// Return an array of Orders IDs for the given product ID
return $orders_ids;
}
I have tried different things but nothing is working. It seems the foreach statement in the code is preventing the shortcode from working. Any help will be greatly appreciated.
本文标签: How can I create a shortcode from an html and php code written together
版权声明:本文标题:How can I create a shortcode from an html and php code written together 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745450611a2658864.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论