- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在编写一个 WP 插件,用于计算订单的平方英寸总体积,并通过自定义字段将其发送到 Shipstation:
<?php
global $woocommerce;
$items = $woocommerce->cart->get_cart();
//Debugging function
function console_log( $data ){
echo '<script>';
echo 'console.log('. json_encode( $data ) .')';
echo '</script>';
}
console_log('$items');
//Custoom field for shipstation
add_filter( 'woocommerce_shipstation_export_custom_field_2', 'shipstation_custom_field_2' );
//Function for processing volume
function shipstation_custom_field_2() {
$cart_prods_in3 = array();
foreach($items as $item => $values) {
$_product = wc_get_product( $values['data']->get_id());
//GET GET PRODUCT IN3
$prod_in3 = $_product->get_length() *
$_product->get_width() *
$_product->get_height();
$prod_in3 = $prod_m3 * $values['quantity'];
//PUSH RESULT TO ARRAY
array_push($cart_prods_in3, $prod_in3);
}
return $cart_prods_in3; // Key for your custom field
}
console_log('shipstation_custom_field_2');
?>
我通过 SFTP 将它上传到站点文件并显示在 WP 上,但是当我单击激活时,我收到一个 fatal error :
Fatal error: Uncaught Error: Call to a member function get_cart() on null in /nas/content/live/sfmstaging/wp-content/plugins/boxCalc/boxCalc.php:10 Stack trace: #0 /nas/content/live/sfmstaging/wp-admin/includes/plugin.php(2299): include() #1 /nas/content/live/sfmstaging/wp-admin/plugins.php(191): plugin_sandbox_scrape('boxCalc/boxCalc...') #2 {main} thrown in /nas/content/live/sfmstaging/wp-content/plugins/boxCalc/boxCalc.php on line 10
最佳答案
请注意,购物车是您无法获得的实时客户对象。
现在在 ShipStation plugin documentation woocommerce_shipstation_export_custom_field_2
过滤器 Hook 只是返回现有订单自定义字段的元键。
这意味着您需要在客户下订单时将购物车总量保存为自定义订单元数据。
请尝试以下操作:
// Custom function to get the volume of a product
function get_product_volume( $product ) {
return $product->get_length() * $product->get_width() * $product->get_height();
}
// Save the cart total volume as custom order meta data
add_action('woocommerce_checkout_create_order', 'save_order_total_volume');
function save_order_total_volume( $order ) {
$total_volume = 0; // Initializing
// Loop through order items
foreach( $order->get_items() as $item ){
$item_volume = get_product_volume($item->get_product()) * $item->get_quantity();
// For product variations (if volume is not accessible get the volume of the parent variabl product)
if( ! $item_volume ) {
$total_volume += get_product_volume( wc_get_product( $item->get_product_id() ) ) * $item->get_quantity();
} else {
$total_volume += $item_volume;
}
}
$order->update_meta_data( '_total_volume', $total_volume ); // Save total volume as custom order meta data
}
// Add total volume custom field meta key for export to ship station
add_filter( 'woocommerce_shipstation_export_custom_field_2', 'shipstation_custom_field_2' );
function shipstation_custom_field_2( $custom_field_key ) {
return '_total_volume';
}
代码位于事件子主题(或事件主题)的 functions.php 文件或插件文件中。测试和工作。
关于php - 将 WooCommerce 订单总量保存为 Shipstation 的自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66200076/
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: C# - How do you get total amount of RAM the computer h
使用 C#,我想获取我的计算机拥有的 RAM 总量。使用 PerformanceCounter,我可以通过设置获得可用内存的数量: counter.CategoryName = "Memory"; c
这里我要计算PF,我们每个月都要扣pf,现在我要显示pf的总金额,这是我的数据库表结构 id first_name pf_amount pf_month badge_number
有没有办法找出我的系统使用 C 的 RAM 总量?我在 Ubuntu 12.04 上。我需要用 C 编写一个应用程序,理想情况下应该在运行时查询 RAM 总量。 最佳答案 在 Linux 上,这可以从
在一个场景中,钱包A 正在接收 代币B 定期从 地址C . AddressC 只发送 TokenB,没有别的。 在 etherscan 或 bscscan 中,很容易查看 WalletA 中收到了多少
在我们的 Spring Boot Web 服务器中,我知道如何限制每个用户的 session (httpSecurity.sessionManagement().maximumSessions()),
我在 CosmosDB 中为我的集合设置了 400 RU/s。我想估计 24 小时内 RU/s 的最大总数。请告诉我,我该如何计算? 计算正确吗?24 小时内 400 * 60 * 60 * 24 =
我只想分享我为增强 docker stats 命令而制作的一个小脚本。我不确定这种方法的准确性。 我可以假设整个 Docker 部署消耗的内存总量是每个容器消耗内存的总和吗? 请分享您的修改和/或更正
我是一名优秀的程序员,十分优秀!