这是我的PHP代码:
$order_data = array(
'shipping_method' => $order->get_shippingmethod(),
);
' shipping_method' 值当前正在导出以下三个值:
我想用自己选择的方式替换此文本。我需要在上面的代码中添加什么来将文本替换为其他内容?因此,如果' shipping_method' = ' FedEx GROUND' ,我想用替换文字'联邦快递' 。因此,这三个值将转换为以下内容:
我没有任何PHP技能可言,足以构建WordPress模板和调整其他代码。我正在编辑此代码以将WooCommerce订单导出为CSV文件,但我需要' shipping_method' 文本可以替换为我选择的文字。
请不要嘲笑我用PHP代码替换文本的尴尬尝试:
$order_data = array(
'shipping_method' => $order->get_shipping_method(str_replace('Free Shipping', 'Free', $str))
);
这显然不起作用,非常感谢任何帮助!
我使用的插件是订单/客户CSV导出 WooThemes : http://docs.woothemes.com/document/woocommerce-customer-order-csv-export-developer-documentation/
答案 0 :(得分:2)
你很接近......但我会简化一下并放弃str_replace()
。我会做类似以下的事情:
$shipping_method = $order->get_shipping_method();
if ( $shipping_method === 'Free Shipping' ) {
$shipping_method = 'Free';
} elseif ( $shipping_method === 'FedEx_GROUND' ) {
$shipping_method = 'FedEx';
} elseif ( $shipping_method === 'UPS Next Day Air' ) {
$shipping_method = 'UPS';
}
$order_data = array(
'shipping_method' => $shipping_method,
);
但是,无法保证更改送货方式值不会破坏其他依赖它的东西...
您还可以使用preg_split()进一步简化此操作(假设分隔符始终为空格或下划线)。这完全消除了对上述if/elseif
条件的需求:
$order_data = array(
'shipping_method' => preg_split('/[\ _]/', $order->get_shipping_method())[0],
);