更新WooCommerce订单前端中的发布元数据

时间:2015-12-07 作者:kreativcube

我希望客户能够按照定制文件的顺序进行更新(在签出页面中插入了谁)

我在订单详细信息中有此代码。php页面,但它只显示输入中的值,但不使用新值更新

<?php
 global $post;


 if ( isset( $_POST[\'submit\'] ) )
 {
 if( ! isset( $post ) ) {
 echo \'Error: Nichts ausgewählt\';
 die();
 }
 else if( ! isset( $_POST[\'frontstrasse\'] ) && ! empty( $_POST[\'frontstrasse\'] ) ){
 echo \'Error: Strasse Not Set\';
 die();
 }


 update_post_meta( $order->id, \'frontstrasse\', sanitize_text_field( $_POST[\'Strasse\'] ) );
 }


 $istrasse = get_post_meta($order->id, \'Strasse\', true );


 echo print_r($istrasse);
 ?>
 <form method="post" action="">
 <input type=\'text\' name=\'frontstrasse\' value=\'<?php echo isset($istrasse) ? $istrasse : \'\'; ?>\' />
 <input type=\'submit\' value=\'save\' />
 </form>

2 个回复
最合适的回答,由SO网友:kreativcube 整理而成

这个代码对我有用。很抱歉,代码可读性不好。

<?php
global $post;
$post = $order_id;
if ( isset( $_POST[\'submit\'] ) ){
  echo \'Update nicht\';
} else  if ( ! empty( $_POST[\'frontstrasse\'] ) ) {
  update_post_meta( $order_id, \'Strasse\', sanitize_text_field( $_POST[\'frontstrasse\'] ) );
  update_post_meta( $order_id, \'Haus-Nr\', sanitize_text_field( $_POST[\'fronthausnr\'] ) );
}
$istrasse = get_post_meta($order->id, \'Strasse\', true );
$ihausnr = get_post_meta($order->id, \'Haus-Nr\', true );
?>

<form method="post" action="">
<label>Strasse</label><input type=\'text\' name=\'frontstrasse\' value=\'<?php echo $istrasse ?>\' />
<label>Haus-Nr</label><input type=\'text\' name=\'fronthausnr\' value=\'<?php echo  $ihausnr ?>\' />
<input type=\'submit\' value=\'save\' name=\'frontsubmit\' />
</form>

SO网友:lonelioness

我偶然看到这篇文章,想为由于update\\u post\\u meta而导致的多次重新提交寻找一个解决方案。看了这些帖子后,下面是我的解决方案wordpress get_post_meta check if multiple values set Prevent processing data multiple times in Woocommerce thankyou hook :

<?php
global $post;
$post = $order_id;
if ( isset( $_POST[\'submit\'] ) ){
  echo \'Update nicht\';
} else 
 
 // Checking if this has already been done avoiding reload
if ( get_post_meta($order_id,"frontstrasse",true)!="" && get_post_meta($order_id,"fronthausnr",true)!="" {
return; // Exit if already processed
}

  update_post_meta( $order_id, \'Strasse\', sanitize_text_field( $_POST[\'frontstrasse\'] ) );
  update_post_meta( $order_id, \'Haus-Nr\', sanitize_text_field( $_POST[\'fronthausnr\'] ) );
}

$istrasse = get_post_meta($order->id, \'Strasse\', true );
$ihausnr = get_post_meta($order->id, \'Haus-Nr\', true );
?>

<form method="post" action="">
<label>Strasse</label><input type=\'text\' name=\'frontstrasse\' value=\'<?php echo $istrasse ?>\' />
<label>Haus-Nr</label><input type=\'text\' name=\'fronthausnr\' value=\'<?php echo  $ihausnr ?>\' />
<input type=\'submit\' value=\'save\' name=\'frontsubmit\' />
</form>
    

相关推荐

Front-End Post Submission

我正在尝试添加一个表单,用户可以从前端提交帖子。我正在学习本教程:http://wpshout。com/wordpress从前端提交帖子/我正在做的是添加this code 到我的一个页面模板。表单显示正常,但当我单击“提交”按钮时,它会显示“Page not found error“”许多评论者说这不起作用。谁能给我指出正确的方向吗?代码是否不完整?有缺陷吗?我做错什么了吗?谢谢Towfiq I。