我正在尝试在单个产品“附加信息”选项卡的表行中显示产品的 SKU。
我尝试使用woocommerce_display_product_attributes过滤器并显示它(下面是我的代码示例),但它仅适用于简单的产品。
当使用具有不同 SKU 的可变产品时,选择(下拉选择)变体时,该字段不会更新,并且仅显示空白。有没有正确的方法来做到这一点?
这是我当前的代码:
// Displays SKU/Part# to Single product Additional information table rows
add_filter('woocommerce_display_product_attributes', 'wc_display_sku_additional_info_table', 10, 2);
function wc_display_sku_additional_info_table( $product_attributes, $product ){
// Get product SKU
$get_sku = ( $sku = $product->get_sku() ) ? $sku : esc_html__( 'N/A', 'woocommerce' );
$product_attributes[] = [
'label' => __('SKU', 'woocommerce'),
'value' => $get_sku,
];
return $product_attributes;
}
Run Code Online (Sandbox Code Playgroud) 我想向 WooCommerce 中的订单项目添加一些元数据。这些元字段仅供内部使用,不应可见。
我们的产品中有一些额外的字段,例如额外费用。我想在导出订单后使用该费用进行处理。
我在这里找到了一个非常好的答案:https ://stackoverflow.com/a/41988701/1788961
add_action('woocommerce_checkout_create_order_line_item', 'add_custom_hiden_order_item_meta_data', 20, 4 );
function add_custom_hiden_order_item_meta_data( $item, $cart_item_key, $values, $order ) {
// Set user meta custom field as order item meta
if( $meta_value = get_user_meta( $order->get_user_id(), 'billing_enumber', true ) )
$item->update_meta_data( 'pa_billing-e-number', $meta_value );
}
Run Code Online (Sandbox Code Playgroud)
但在此示例中,元字段中的内容将显示在客户的订单详细信息中。
有没有办法使这些字段仅在后端可见并可用于内部功能?
我正在尝试将类添加到 WooCommerce 单一产品页面,特别是产品页面上的“产品”div,但也添加其他元素 - 使用挂钩和过滤器。
我不太擅长 PHP,我更像是一名前端开发人员,但我的任务是设计 WooCommerce 样式以适应自定义 Wordpress 主题。
我之前使用过以下代码通过文件将类添加到 Wordpress 中的 body 元素functions.php。我在 WooCommerce 模板的产品页面上找到了“产品”div,并为此复制了过滤器,但它似乎不起作用。
add_filter( 'wc_product_class','my_product_class' );
function my_product_class( $classes ) {
$classes[] = 'my-product-class';
return $classes;
}
Run Code Online (Sandbox Code Playgroud)
任何帮助或指示我应该做什么来实现这一目标将非常感激。我现在用 JS 添加类,但这可能不是一个好主意!
我正在尝试检查 WooCommerce 插件是否处于活动状态,然后向选项面板添加一些选项。但这段代码不能正常工作。
谁能告诉我出了什么问题吗?
if( class_exists( 'WooCommerce' )) {//add options}
Run Code Online (Sandbox Code Playgroud) 阅读https://rudrastyh.com/woocommerce/columns.html后,我能够在 WooCommerce 管理订单列表上添加包含订单付款方式的列
add_filter('manage_edit-shop_order_columns', 'misha_order_items_column' );
function misha_order_items_column( $order_columns ) {
$order_columns['order_payment_method'] = "Payment method";
return $order_columns;
}
add_action( 'manage_shop_order_posts_custom_column' , 'misha_order_items_column_cnt' );
function misha_order_items_column_cnt( $colname ) {
global $the_order; // the global order object
if( $colname == 'order_payment_method' ) {
// Get payment method
$payment_method = $the_order->get_payment_method();
echo $payment_method;
}
}
Run Code Online (Sandbox Code Playgroud)
这非常有效,并在自定义列中添加所需的状态
然后,根据我找到的代码,我进行了调整以添加过滤器
add_action('restrict_manage_posts', 'add_shop_order_filter_by_state');
function add_shop_order_filter_by_state(){
global $pagenow, $typenow, $the_order;
if( 'shop_order' === $typenow && 'edit.php' === $pagenow ) {
// Get payment method
$payment_method = …Run Code Online (Sandbox Code Playgroud) wordpress backend woocommerce payment-method hook-woocommerce
在 WooCommerce 中,我\xe2\x80\x99m 尝试在发布产品时触发操作,但它\xe2\x80\x99t 不起作用,这是我的代码:
\nadd_action( 'transition_post_status', 'my_call_back_function', 10, 3 ); \nfunction my_call_back_function( $new_status, $old_status, $post ) {\n if (\n 'product' !== $post->post_type ||\n 'publish' !== $new_status ||\n 'publish' === $old_status\n ) {\n return;\n }\n file_put_contents( 'file.txt', 'Product published', FILE_APPEND ); \n}\nRun Code Online (Sandbox Code Playgroud)\n这里我\xe2\x80\x99m 尝试创建一个文件并在其中放入一些文本。但正如我所说,该文件并未创建\xe2\x80\x99。
\nI\xe2\x80\x99m 使用 WordPress 5.8.1 和 Woocommerce 5.8.0。问题是什么以及如何解决?我们将非常感谢您的帮助。
\n提前致谢。
\n我想使用 woocommerce 挂钩woocommerce_order_status_changed。当新的订单状态为垃圾时,我想解雇一些东西。
我使用了这个函数,它对于剩余订单状态(垃圾除外)非常有效。
这是我的代码:
function custom_order_actions ( $order_id, $old_status, $new_status ){
$order = new WC_Order($order_id);
if ($new_status == 'trash') {
// Do something
}
}
add_action( 'woocommerce_order_status_changed', 'custom_order_actions', 99, 3 );
Run Code Online (Sandbox Code Playgroud) php wordpress woocommerce hook-woocommerce woocommerce-theming
Woocommerce Paypal 付款插件在 Woocommerce 我的帐户页面上添加了“Paypal 付款”选项卡。如何完全删除此选项卡?
我已经尝试过从此处找到的代码片段修改的代码片段,但未能成功删除该选项卡。
add_filter ( 'woocommerce_account_menu_items', 'misha_remove_my_account_links' );
function misha_remove_my_account_links( $menu_links ){
unset( $menu_links['ppcp-paypal-payment-tokens'] );
return $menu_links;
}
Run Code Online (Sandbox Code Playgroud) 我想在变体名称后添加内容。
我找到这个钩子并看到它之前可以工作,但在我的测试中它不是:(
我想问,是否有另一种钩子/工作方法可以用来添加内容?
add_filter('woocommerce_attribute_label', 'custom_attribute_label', 10, 3);
function custom_attribute_label($label, $name, $product){
$taxonomy = 'pa_' . $name;
if ($taxonomy == 'pa_size')
$label .= '<div class="custom-label">' . __('MY TEXT', 'woocommerce') . '</div>';
return $label;
}
Run Code Online (Sandbox Code Playgroud)
php wordpress woocommerce hook-woocommerce woocommerce-theming
我正在尝试为WooCommerce设置dataLayer谢谢你的页面.看看到目前为止我做了什么(变量尚未完全设置):
function dataLayer_google_gtm( $order_id ) {
// Lets grab the order
$order = wc_get_order( $order_id );
// Products
$products = $order->get_items();
?>
<script>
dataLayer.push({
'ecommerce': {
'purchase': {
'actionField':{
'id':'<?php echo $order->get_order_number(); ?>',
'affiliation':'CHACAFOODS',
'revenue':'<?php echo $order->get_order_total(); ?>',
'tax':'<?php echo $order->get_total_tax(); ?>',
'shipping':'<?php echo $order->get_shipping(); ?>',
'coupon':'<?php echo $order->get_order_discount_total(); ?>',
},
window['service'].push('products':,[
<?php
$count = 0;
foreach( $products as $item_id => $item ) {
$count++;
$product = $order->get_product_from_item( $item ); ?>
{
'name':<?php echo $item['name']; ?>',
'id':
'price': '<?php echo …Run Code Online (Sandbox Code Playgroud) javascript php woocommerce google-tag-manager hook-woocommerce
hook-woocommerce ×10
woocommerce ×10
wordpress ×9
php ×8
backend ×1
css ×1
fopen ×1
javascript ×1
jquery ×1
orders ×1
paypal ×1
plugins ×1
product ×1