我有一个WooCommerce网站,有几个产品由于他们订购了错误的东西而获得了大量的回报.我添加了一个"备忘单",客户可以通过高级自定义字段引用该备忘单.我已经编写了下面的代码,强制他们选中复选框以确认他们已经阅读了它,然后才能将产品添加到购物车中.
问题是,无论是否勾选方框,我都会显示自定义错误消息.显然我的逻辑有一个缺陷,但我无法确定它.
任何帮助将不胜感激.
<?php
// Add Confirmation Checkbox on Product Single
add_action( 'woocommerce_single_product_summary', 'woocommerce_cheat_sheet_confirm', 29 );
function woocommerce_cheat_sheet_confirm() {
global $post;
$cheat_sheet = get_field('cheat_sheet'); // Get Advanced Custom Field
if ( ! empty( $cheat_sheet ) ) { // If it exists, add the confirmation box ?>
<div id="cheat-sheet-confirmation" class="checkbox">
<form>
<label>
<input id="cheatsheetconfirm" name="cheatsheetconfirm" type="checkbox" value="isconfirmed"> I confirm that I have read the <a href="<?php echo $cheat_sheet['url']; ?>" />cheat sheet</a>.
</label>
</form>
</div>
<?php }
}
function cheatsheetConfirmation() {
if(isset($_REQUEST['cheatsheetconfirm']) …Run Code Online (Sandbox Code Playgroud) 理想情况下,我希望所有脚本都以 HTML 顺序异步加载。据我所知,async不是这样的。
对于以下属性,general.min.js和funcs.min.js脚本不会运行,因为其中包含一些 jQuery。
<script type="text/javascript" src="scripts/jquery-3.2.1.min.js" async="async"></script>
<script type="text/javascript" src="scripts/general.min.js" defer="defer"></script>
<script type="text/javascript" src="scripts/funcs.min.js" defer="defer"></script>
Run Code Online (Sandbox Code Playgroud)
据我了解,该属性仅影响下载,而不影响脚本的执行。
那么,如何才能保持下载后的执行顺序呢?
我只是尝试了以下命令,但收到了不良结果。
DB::table('locations')->insert([
['code' => 'YC', 'name' => 'York Clifton'],
['code' => 'YK', 'name' => 'York'],
['postcode' => 'DR1', 'name' => 'Jason'],
['postcode' => 'DLR', 'name' => 'Beckton']
]);
Run Code Online (Sandbox Code Playgroud)
上面将这样在表中插入数据:
DB::table('locations')->insert([
['code' => 'YC', 'name' => 'York Clifton'],
['code' => 'YK', 'name' => 'York'],
['postcode' => 'DR1', 'name' => 'Jason'],
['postcode' => 'DLR', 'name' => 'Beckton']
]);
Run Code Online (Sandbox Code Playgroud)
位置表是使用以下代码段构建的:
$table->string('name', 100);
$table->string('code', 4)->nullable();
$table->string('postcode', 10)->nullable();
Run Code Online (Sandbox Code Playgroud)
自然,我想要的结果是在数据库中插入四行。前两个将填充code和name字段,而后两个插入将填充postcode和name。
我看过的文档说:
查询构建器还提供用于将记录插入数据库表的插入方法。insert方法接受一个列名和值的数组:
您甚至可以通过传递一个数组数组,通过一次插入调用将多个记录插入表中 …
我正在开发一个可通过移动和网络应用程序访问的 API。
我需要从 API 资源发送特定字段。
我有ItemResource
public function toArray($request) {
return [
'id' => $this->id,
'name' => $this->name,
'description' => $this->description,
'price' => $this->price,
'stock' => $this->stock,
'reviews' => $this->reviews, // this is from reviews table
];
}
Run Code Online (Sandbox Code Playgroud)
我的Item模特
public function reviews() {
return $this->hasMany(ItemReview::class);
}
Run Code Online (Sandbox Code Playgroud)
我的控制器代码
return ItemResource::collection(Item::all());
Run Code Online (Sandbox Code Playgroud)
我得到这个数组
{
"data": {
"id": 10,
"name": "Item Name",
"description": "Item description",
"price": 410,
"stock": "815",
"reviews": [
{
"id": 4, // I don't want to get this …Run Code Online (Sandbox Code Playgroud) 我有一份学生名单.
对于一些学生,我必须显示一个链接,并在点击此链接时,他们的进度卡应该加载(它是.pdf文件).对于其他人,不应显示该链接.
我这样做是通过给他们的进度卡提供相同的学生ID,如果是这个特定的学生,那么显示链接; 否则,请勿显示链接.我可以这样做,只有5或6名学生.我不能为1000名学生这样做.
以下是我的AngularJS代码:
if (response.student_id == 'SD0001' || response.student_id == 'SD0002' || response.student_id == 'SD0004') {
$scope.pdfData = true;
$scope.StudentPDFFile = response.student_id+'.pdf';
} else {
$scope.pdfData = false;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular.min.js"></script>
<body id="ng-app" ng-app>
<div ng-switch on="pdfData">
<div ng-switch-when="false"></div>
<div ng-switch-when="true">
<span class="font-10">Download Performance Report</span>
<a href="http://www.example.com/s-pdf/{{StudentPDFFile}}" target="_blank"> click here</a>
</div>
</div>
</body>Run Code Online (Sandbox Code Playgroud)
这里我没有指定控制器,这是骨架功能对我有用.
1000条记录我怎么能这样做?
我有两张桌子:
+-----------------------+
| Tables_in_my_database |
+-----------------------+
| orders |
| orderTaken |
+-----------------------+
Run Code Online (Sandbox Code Playgroud)
在订单,有喜欢的属性orderId,orderName.
在orderTaken,有喜欢的属性userId,orderId和orderStatus.
基本上,我的项目的机制运行如下:
具有唯一userId的用户将能够从网页下订单,其中每个订单也有自己的唯一orderId.采取后,该orderTaken表将记录userId,orderId并初步设置orderStatus = 1.
现在,我想选择一个用户所采取的订单orderStatus = 1,而且我还需要显示我的订单表中的orderName.我已经学会了内连接并编写了一个查询:
SELECT * FROM orders
WHERE orders.orderId IN
(SELECT orderId FROM orderTaken
WHERE orderTaken.userId = '8' AND orderTaken.orderStatus = '1')
INNER JOIN orderTaken ON orders.orderId = orderTaken.orderId
Run Code Online (Sandbox Code Playgroud)
但是,MySQL一直在抱怨语法错误.我想我不能用这种方式加入内连接?任何人都可以纠正我吗?谢谢!
我正在使用开关来测试变量的值.
变量,, $sizeTotal可以包含字符串或数字.在下面的例子中,我期望开关触发默认情况.
但是,它每次都是第一个案例,我不知道为什么......
$sizeTotal = "test";
$extraCharges['2'] = 1000;
switch ($sizeTotal) {
case ($sizeTotal < $extraCharges['2']):
$var = 40;
return $var;
case ($sizeTotal >= $extraCharges['2']):
$var = 60;
return $var;
default:
$var = 1000;
return $var;
}
Run Code Online (Sandbox Code Playgroud) 我尝试了多种方法来获取表内单击按钮的行索引。
桌子:
while ($info = mysqli_fetch_array($sql)) {
echo "<tr>";
echo "<th>{$info['name']}</th>";
echo "<th>{$info['pass']}</th>";
echo "<th><a href='http://{$info['link']}'>{$info['link']}</a></th>";
echo "<th><div class='delbuttons'><button class='btn btn-info' data-toggle='modal' data-target='#myModal' id='{$info['id']}'>Delete</button></div></th>";
echo "</tr>";
}
?>
Run Code Online (Sandbox Code Playgroud)
这些是我尝试过的方法:
$(document).on('click', '.delbuttons button', function(event) {
alert($(this).index());
}
Run Code Online (Sandbox Code Playgroud)
但它总是返回-1。
$(document).on('click','.delbuttons button', function(event) {
alert(this.rowIndex);
}
Run Code Online (Sandbox Code Playgroud)
这将返回undefined。
我知道这是一个基本问题,但我不知道如何解决它!
在我的部分代码中,我有与下面相同的代码块;该部分工作正常,但对于这一部分,我遇到了错误!
console.log 仅第一次显示结果!
const bt = document.createElement('button');
bt.innerHTML = "CLICK HERE";
document.querySelector('#dv').append(bt);
bt.addEventListener('click', console.log('clicked'));
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script src="test.js" defer></script>
</head>
<body>
<div id="dv"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) javascript ×4
php ×4
mysql ×3
jquery ×2
laravel ×2
angularjs ×1
asynchronous ×1
dom-events ×1
eloquent ×1
html-table ×1
inner-join ×1
join ×1
laravel-5.6 ×1
onclick ×1
pdf ×1
product ×1
row ×1
select ×1
woocommerce ×1
wordpress ×1